欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于keras中訓(xùn)練數(shù)據(jù)的幾種方式對(duì)比(fit和fit_generator)

 更新時(shí)間:2021年05月17日 11:23:54   作者:光彩照人  
這篇文章主要介紹了keras中訓(xùn)練數(shù)據(jù)的幾種方式對(duì)比(fit和fit_generator),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、train_on_batch

model.train_on_batch(batchX, batchY)

train_on_batch函數(shù)接受單批數(shù)據(jù),執(zhí)行反向傳播,然后更新模型參數(shù),該批數(shù)據(jù)的大小可以是任意的,即,它不需要提供明確的批量大小,屬于精細(xì)化控制訓(xùn)練模型,大部分情況下我們不需要這么精細(xì),99%情況下使用fit_generator訓(xùn)練方式即可,下面會(huì)介紹。

二、fit

model.fit(x_train, y_train, batch_size=32, epochs=10)

fit的方式是一次把訓(xùn)練數(shù)據(jù)全部加載到內(nèi)存中,然后每次批處理batch_size個(gè)數(shù)據(jù)來(lái)更新模型參數(shù),epochs就不用多介紹了。這種訓(xùn)練方式只適合訓(xùn)練數(shù)據(jù)量比較小的情況下使用。

三、fit_generator

利用Python的生成器,逐個(gè)生成數(shù)據(jù)的batch并進(jìn)行訓(xùn)練,不占用大量?jī)?nèi)存,同時(shí)生成器與模型將并行執(zhí)行以提高效率。例如,該函數(shù)允許我們?cè)贑PU上進(jìn)行實(shí)時(shí)的數(shù)據(jù)提升,同時(shí)在GPU上進(jìn)行模型訓(xùn)練

接口如下:

fit_generator(self, generator, steps_per_epoch, epochs=1, verbose=1, callbacks=None, validation_data=None, validation_steps=None, class_weight=None, max_q_size=10, workers=1, pickle_safe=False, initial_epoch=0)

generator:生成器函數(shù)

steps_per_epoch:整數(shù),當(dāng)生成器返回steps_per_epoch次數(shù)據(jù)時(shí),計(jì)一個(gè)epoch結(jié)束,執(zhí)行下一個(gè)epoch。也就是一個(gè)epoch下執(zhí)行多少次batch_size。

epochs:整數(shù),控制數(shù)據(jù)迭代的輪數(shù),到了就結(jié)束訓(xùn)練。

callbacks=None, list,list中的元素為keras.callbacks.Callback對(duì)象,在訓(xùn)練過(guò)程中會(huì)調(diào)用list中的回調(diào)函數(shù)

舉例:

def generate_arrays_from_file(path):
            while True:
                with open(path) as f:
                    for line in f:
                        # create numpy arrays of input data
                        # and labels, from each line in the file
                        x1, x2, y = process_line(line)
                        yield ({'input_1': x1, 'input_2': x2}, {'output': y})
 
model.fit_generator(generate_arrays_from_file('./my_folder'),
                            steps_per_epoch=10000, epochs=10)

補(bǔ)充:keras.fit_generator()屬性及取值

如下所示:

fit_generator(self, generator, 
                    steps_per_epoch=None, 
                    epochs=1, 
                    verbose=1, 
                    callbacks=None, 
                    validation_data=None, 
                    validation_steps=None,  
                    class_weight=None,
                    max_queue_size=10,   
                    workers=1, 
                    use_multiprocessing=False, 
                    shuffle=True, 
                    initial_epoch=0)

通過(guò)Python generator產(chǎn)生一批批的數(shù)據(jù)用于訓(xùn)練模型。generator可以和模型并行運(yùn)行,例如,可以使用CPU生成批數(shù)據(jù)同時(shí)在GPU上訓(xùn)練模型。

參數(shù):

generator:一個(gè)generator或Sequence實(shí)例,為了避免在使用multiprocessing時(shí)直接復(fù)制數(shù)據(jù)。

steps_per_epoch:從generator產(chǎn)生的步驟的總數(shù)(樣本批次總數(shù))。通常情況下,應(yīng)該等于數(shù)據(jù)集的樣本數(shù)量除以批量的大小。

epochs:整數(shù),在數(shù)據(jù)集上迭代的總數(shù)。

works:在使用基于進(jìn)程的線程時(shí),最多需要啟動(dòng)的進(jìn)程數(shù)量。

use_multiprocessing:布爾值。當(dāng)為True時(shí),使用基于基于過(guò)程的線程。

例如:

datagen = ImageDataGenator(...)
model.fit_generator(datagen.flow(x_train, y_train,
                                 batch_size=batch_size),
                    epochs=epochs,
                    validation_data=(x_test, y_test),
                    workers=4)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用matplotlib畫柱狀圖、散點(diǎn)圖

    python使用matplotlib畫柱狀圖、散點(diǎn)圖

    這篇文章主要為大家詳細(xì)介紹了python使用matplotlib畫柱狀圖、散點(diǎn)圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 詳解Python字符串原理與使用的深度總結(jié)

    詳解Python字符串原理與使用的深度總結(jié)

    本文將學(xué)習(xí)字符串?dāng)?shù)據(jù)類型相關(guān)知識(shí),將討論如何聲明字符串?dāng)?shù)據(jù)類型,字符串?dāng)?shù)據(jù)類型與?ASCII?表的關(guān)系,字符串?dāng)?shù)據(jù)類型的屬性,以及一些重要的字符串方法和操作,超級(jí)干貨,不容錯(cuò)過(guò)
    2022-05-05
  • TensorFlow 合并/連接數(shù)組的方法

    TensorFlow 合并/連接數(shù)組的方法

    今天小編就為大家分享一篇TensorFlow 合并/連接數(shù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python?DataFrame中l(wèi)oc與iloc取數(shù)據(jù)的基本方法實(shí)例

    python?DataFrame中l(wèi)oc與iloc取數(shù)據(jù)的基本方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于python?DataFrame中l(wèi)oc與iloc取數(shù)據(jù)的基本方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Python3列表內(nèi)置方法大全及示例代碼小結(jié)

    Python3列表內(nèi)置方法大全及示例代碼小結(jié)

    這篇文章主要介紹了Python3列表內(nèi)置方法大全及示例代碼小結(jié),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python功能點(diǎn)實(shí)現(xiàn):函數(shù)級(jí)/代碼塊級(jí)計(jì)時(shí)器

    Python功能點(diǎn)實(shí)現(xiàn):函數(shù)級(jí)/代碼塊級(jí)計(jì)時(shí)器

    今天小編就為大家分享一篇關(guān)于Python功能點(diǎn)實(shí)現(xiàn):函數(shù)級(jí)/代碼塊級(jí)計(jì)時(shí)器,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Python3中類、模塊、錯(cuò)誤與異常、文件的簡(jiǎn)易教程

    Python3中類、模塊、錯(cuò)誤與異常、文件的簡(jiǎn)易教程

    這篇文章主要給大家介紹了關(guān)于Python3中類、模塊、錯(cuò)誤與異常、文件的相關(guān)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • python神經(jīng)網(wǎng)絡(luò)MobileNetV3?large模型的復(fù)現(xiàn)詳解

    python神經(jīng)網(wǎng)絡(luò)MobileNetV3?large模型的復(fù)現(xiàn)詳解

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNetV3?large模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 淺談python函數(shù)之作用域(python3.5)

    淺談python函數(shù)之作用域(python3.5)

    下面小編就為大家?guī)?lái)一篇淺談python函數(shù)之作用域(python3.5)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • python利用appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化的示例

    python利用appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化的示例

    這篇文章主要介紹了python利用appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論