中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于keras中訓練數據的幾種方式對比有什么不同

發布時間:2021-05-17 14:38:59 來源:億速云 閱讀:284 作者:小新 欄目:開發技術

這篇文章主要介紹了基于keras中訓練數據的幾種方式對比有什么不同,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、train_on_batch

model.train_on_batch(batchX, batchY)

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

二、fit

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

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

三、fit_generator

利用Python的生成器,逐個生成數據的batch并進行訓練,不占用大量內存,同時生成器與模型將并行執行以提高效率。例如,該函數允許我們在CPU上進行實時的數據提升,同時在GPU上進行模型訓練

接口如下:

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:生成器函數

steps_per_epoch:整數,當生成器返回steps_per_epoch次數據時,計一個epoch結束,執行下一個epoch。也就是一個epoch下執行多少次batch_size。

epochs:整數,控制數據迭代的輪數,到了就結束訓練。

callbacks=None, list,list中的元素為keras.callbacks.Callback對象,在訓練過程中會調用list中的回調函數

舉例:

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)

補充: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)

通過Python generator產生一批批的數據用于訓練模型。generator可以和模型并行運行,例如,可以使用CPU生成批數據同時在GPU上訓練模型。

參數:

generator:一個generator或Sequence實例,為了避免在使用multiprocessing時直接復制數據。

steps_per_epoch:從generator產生的步驟的總數(樣本批次總數)。通常情況下,應該等于數據集的樣本數量除以批量的大小。

epochs:整數,在數據集上迭代的總數。

works:在使用基于進程的線程時,最多需要啟動的進程數量。

use_multiprocessing:布爾值。當為True時,使用基于基于過程的線程。

例如:

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)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“基于keras中訓練數據的幾種方式對比有什么不同”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴文县| 红原县| 诸暨市| 纳雍县| 博罗县| 文化| 剑川县| 夏邑县| 邯郸县| 湾仔区| 英德市| 杭锦旗| 长寿区| 忻州市| 澄城县| 曲阳县| 淮阳县| 夹江县| 工布江达县| 衡南县| 淮南市| 衡阳市| 乐陵市| 南川市| 东乡县| 邵东县| 如皋市| 东丰县| 温州市| 依兰县| 舒兰市| 北川| 康定县| 泰顺县| 辽阳市| 林芝县| 南陵县| 阿图什市| 宝兴县| 长汀县| 西青区|