fit,fit_generator的使用区别
fit函數
根據[1],當你使用.fit()函數時,意味著如下兩個假設:
?
###############################################################################
fit_generator()函數
fit_generator()函數就比較重要了,也是本文討論的重點。fit_generator()與fit()的主要區別就在一個generator上。之前,我們把整個訓練數據都輸入到fit()里,我們也不需要考慮batch的細節;現在,我們使用一個generator,每次生成一個batch送給fit_generator()訓練。
?
step_per_epochs參數
由于generator()函數的循環沒有終止條件,fit_generator也不知道一個epoch什么時候結束,所以我們需要手動指定step_per_epochs參數,一般的數值即為len(y)//batch_size。如果數據集大小不能整除batch_size,而且你打算使用最后一個batch的數據(該batch比batch_size要小),此時使用np.ceil(len(y)/batch_size)。
?
?
Reference:
[1]A. Rosebrock. (December 24, 2018). How to use Keras fit and fit_generator (a hands-on tutorial).
https://www.pyimagesearch.com/2018/12/24/how-to-use-keras-fit-and-fit_generator-a-hands-on-tutorial/
[2]tf.keras.utils.Sequence. (July 10, 2019). Retrieved from https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/keras/utils/Sequence
?
總結
以上是生活随笔為你收集整理的fit,fit_generator的使用区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于ChipSmith的逆向(反向)模拟
- 下一篇: 使用TPU的注意事项