[Day 98] generator 的作用?
2020/07/05 下午 08:53
機器學習共學討論版
吳宗翰
觀看數:3
回答數:3
收藏數:0
ml100-4
使用 generator 是為了在訓練模型時將資料集以分批的方式讀取, 以避免記憶體超載對嗎?
可是範例裡面有叫這一行 (x_train, y_train), (x_test, y_test) = cifar10.load_data(), 然後對整個資料集做了標準化.這樣是不是已經把整個資料集都讀進記憶體了?
回答列表
-
2020/07/06 下午 05:43Jeffrey贊同數:0不贊同數:0留言數:1
Hi, 你好,
(x_train, y_train), (x_test, y_test) = cifar10.load_data(), --> 這一行是將 cifar10 的這個 dataset load 進來, 安資料屬性分成訓練集與測試集, 讀進記憶體, 沒做其它的.
Generator 有這個的前後用法?
-
2020/07/07 下午 08:27Jeffrey贊同數:0不贊同數:0留言數:0
Data 會讀入記憶體或是RAMDISK, 所以讀入 data 去區分訓練集/ 測試集;
在 Generator 會使用記憶體做input/ouput buffer, 會需要double的空間,
所以都是會分批處理;
分批處理主要是確認dataset 都會送入訓練;
-
2020/07/09 下午 03:28張維元 (WeiYuan)贊同數:0不贊同數:0留言數:0
嗨,以下提供回答
1. 使用 generator 是為了在訓練模型時將資料集以分批的方式讀取, 以避免記憶體超載對嗎?
=> 是
2. 可是範例裡面有叫這一行 (x_train, y_train), (x_test, y_test) = cifar10.load_data(), 然後對整個資料集做了標準化.這樣是不是已經把整個資料集都讀進記憶體了?
=> 這行的 () 不是 generator,這裡是 tuple 的 destructing 的用法。