logo
Loading...

[Day 98] generator 的作用? - Cupoy

使用 generator 是為了在訓練模型時將資料集以分批的方式讀取, 以避免記憶體超載對嗎?可是範...

ml100-4

[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:43
    Jeffrey
    贊同數:0
    不贊同數:0
    留言數:1

    Hi, 你好,

    (x_train, y_train), (x_test, y_test) = cifar10.load_data(), --> 這一行是將 cifar10 的這個 dataset load 進來, 安資料屬性分成訓練集與測試集, 讀進記憶體, 沒做其它的. 


    Generator 有這個的前後用法? 

  • 2020/07/07 下午 08:27
    Jeffrey
    贊同數: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 的用法。