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

keras和tensorflow使用fit_generator 批次訓(xùn)練操作

 更新時間:2020年07月03日 10:08:24   作者:zhang0peter  
這篇文章主要介紹了keras和tensorflow使用fit_generator 批次訓(xùn)練操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

fit_generator 是 keras 提供的用來進行批次訓(xùn)練的函數(shù),使用方法如下:

model.fit_generator(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)

參數(shù)說明:

generator: 一個生成器,或者一個 Sequence (keras.utils.Sequence) 對象的實例, 以在使用多進程時避免數(shù)據(jù)的重復(fù)。 生成器的輸出應(yīng)該為以下之一:

一個(inputs, targets) 元組

一個 (inputs, targets, sample_weights) 元組。

這個元組(生成器的單個輸出)組成了單個的 batch。 因此,這個元組中的所有數(shù)組長度必須相同(與這一個 batch 的大小相等)。 不同的 batch 可能大小不同。 例如,一個 epoch 的最后一個 batch 往往比其他 batch 要小, 如果數(shù)據(jù)集的尺寸不能被 batch size 整除。 生成器將無限地在數(shù)據(jù)集上循環(huán)。當運行到第steps_per_epoch 時,記一個 epoch 結(jié)束。

steps_per_epoch: 在聲明一個 epoch 完成并開始下一個 epoch 之前從 generator產(chǎn)生的總步數(shù)(批次樣本)。 它通常應(yīng)該等于你的數(shù)據(jù)集的樣本數(shù)量除以批量大小。 對于Sequence,它是可選的:如果未指定,將使用len(generator)作為步數(shù)。

epochs: 整數(shù)。訓(xùn)練模型的迭代總輪數(shù)。一個 epoch 是對所提供的整個數(shù)據(jù)的一輪迭代,如 steps_per_epoch 所定義。注意,與 initial_epoch 一起使用,epoch 應(yīng)被理解為「最后一輪」。模型沒有經(jīng)歷由 epochs 給出的多次迭代的訓(xùn)練,而僅僅是直到達到索引 epoch 的輪次。

verbose: 0, 1 或 2。日志顯示模式。 0 = 安靜模式, 1 = 進度條, 2 = 每輪一行。

callbacks: keras.callbacks.Callback 實例的列表。在訓(xùn)練時調(diào)用的一系列回調(diào)函數(shù)。

validation_data: 它可以是以下之一:

驗證數(shù)據(jù)的生成器或Sequence實例

一個(inputs, targets) 元組

一個(inputs, targets, sample_weights) 元組。

在每個 epoch 結(jié)束時評估損失和任何模型指標。該模型不會對此數(shù)據(jù)進行訓(xùn)練。

validation_steps: 僅當 validation_data 是一個生成器時才可用。 在停止前 generator 生成的總步數(shù)(樣本批數(shù))。 對于 Sequence,它是可選的:如果未指定,將使用 len(generator) 作為步數(shù)。

class_weight: 可選的將類索引(整數(shù))映射到權(quán)重(浮點)值的字典,用于加權(quán)損失函數(shù)(僅在訓(xùn)練期間)。 這可以用來告訴模型「更多地關(guān)注」來自代表性不足的類的樣本。

max_queue_size: 整數(shù)。生成器隊列的最大尺寸。 如未指定,max_queue_size 將默認為 10。

workers: 整數(shù)。使用的最大進程數(shù)量,如果使用基于進程的多線程。 如未指定,workers 將默認為 1。如果為 0,將在主線程上執(zhí)行生成器。

use_multiprocessing: 布爾值。如果 True,則使用基于進程的多線程。 如未指定, use_multiprocessing 將默認為 False。 請注意,由于此實現(xiàn)依賴于多進程,所以不應(yīng)將不可傳遞的參數(shù)傳遞給生成器,因為它們不能被輕易地傳遞給子進程。

shuffle: 是否在每輪迭代之前打亂 batch 的順序。 只能與 Sequence (keras.utils.Sequence) 實例同用。

initial_epoch: 開始訓(xùn)練的輪次(有助于恢復(fù)之前的訓(xùn)練)。

補充知識:Keras中fit_generator 的多個分支輸入時,需注意generator的格式 以及 輸入序列的順序

需要注意迭代器 yeild返回不能是[x1,x2],y 這樣,而是要完整的字典格式的:

yield ({'input_1': x1, 'input_2': x2}, {'output': y})

這也不算坑 追進去 fit_generator也能看到示例

def generate_batch(x_train,y_train,batch_size,x_train2,randomFlag=True):
 ylen = len(y_train)
 loopcount = ylen // batch_size
 i=-1
 while True:
  if randomFlag:
   i = random.randint(0,loopcount-1)
  else:
   i=i+1
   i=i%loopcount

  yield ({'lstmInput': x_train[i*batch_size:(i+1)*batch_size], 
    'bgInput': x_train2[i*batch_size:(i+1)*batch_size]}, 
   {'prediction': y_train[i*batch_size:(i+1)*batch_size]}) 

ps: 因為要是tuple yield后的括號不能省

需注意的坑1是,validation data中如果用【】組成數(shù)組進行輸入,是要按順序的,按編譯model前的設(shè)置model = Model(inputs=[simInput,lstmInput,bgInput], outputs=predictions),中數(shù)組的順序來編譯

需注意的坑2是,多輸入input時,以后都用 inputs1=Input(batch_shape=(batchSize,TPeriod,dimIn,),name='input1LSTM')指定batchSize,不然跟stateful lstm結(jié)合時,會提示不匹配。

history=model.fit_generator(generate_batch(trainX,trainY,batchSize,trainX2),
   steps_per_epoch=len(trainX)//batchSize,
   validation_data=([testX,testX2],testY),
   epochs=epochs,
   callbacks=[tensorboard,checkpoint],initial_epoch=0,verbose=1) # Fit the LSTM network/擬合LSTM網(wǎng)絡(luò)

以上這篇keras和tensorflow使用fit_generator 批次訓(xùn)練操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pyqt5 從本地選擇圖片 并顯示在label上的實例

    pyqt5 從本地選擇圖片 并顯示在label上的實例

    今天小編就為大家分享一篇pyqt5 從本地選擇圖片 并顯示在label上的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python+tkinter使用40行代碼實現(xiàn)計算器功能

    Python+tkinter使用40行代碼實現(xiàn)計算器功能

    這篇文章主要為大家詳細介紹了Python+tkinter使用40行代碼實現(xiàn)計算器功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python整小時 整天時間戳獲取算法示例

    python整小時 整天時間戳獲取算法示例

    今天小編就為大家分享一篇python整小時 整天時間戳獲取算法示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • pycharm查看之前的運行結(jié)果詳細步驟

    pycharm查看之前的運行結(jié)果詳細步驟

    在工作場景下,程序員如何運用PyCharm去書寫代碼以及運行文件,還有學(xué)會對各種突發(fā)情況的應(yīng)對,這篇文章主要給大家介紹了關(guān)于pycharm查看之前的運行結(jié)果的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Python完成毫秒級搶淘寶大單功能

    Python完成毫秒級搶淘寶大單功能

    在本篇文章里小編給大家分享了關(guān)于Python完成毫秒級搶淘寶大單功能以及實例代碼,需要的朋友們參考下。
    2019-06-06
  • Python使用pdb調(diào)試代碼的技巧

    Python使用pdb調(diào)試代碼的技巧

    Pdb就是Python debugger,是python自帶的調(diào)試器。這篇文章主要介紹了Python使用pdb調(diào)試代碼的技巧,需要的朋友可以參考下
    2020-05-05
  • 使用python將大量數(shù)據(jù)導(dǎo)出到Excel中的小技巧分享

    使用python將大量數(shù)據(jù)導(dǎo)出到Excel中的小技巧分享

    今天小編就為大家分享一篇使用python將大量數(shù)據(jù)導(dǎo)出到Excel中的小技巧心得,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python 使用tempfile包輕松無痕的運行代碼

    Python 使用tempfile包輕松無痕的運行代碼

    大家好,我們知道軟件運行過程中一般會在指定位置生成臨時文件,這些資源不要輕易刪除,可能是過程文件,定時清理是必要的,今天給大家分享一款工具:tempfile,喜歡本文點贊支持,歡迎收藏學(xué)習(xí)
    2021-11-11
  • Python3內(nèi)置函數(shù)chr和ord實現(xiàn)進制轉(zhuǎn)換

    Python3內(nèi)置函數(shù)chr和ord實現(xiàn)進制轉(zhuǎn)換

    這篇文章主要介紹了Python3內(nèi)置函數(shù)chr和ord實現(xiàn)進制轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Python中那些簡單又好用的特性和用法盤點

    Python中那些簡單又好用的特性和用法盤點

    這篇文章主要為大家詳細介紹了在編寫Python代碼過程中用到的幾個簡單又好用的特性和用法,這些特性和用法可以幫助我們更高效地編寫Python代碼,希望對大家有所幫助
    2024-03-03

最新評論