最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Keras框架中的epoch、bacth、batch size、iteration使用介紹

 更新時間:2020年06月10日 10:23:31   作者:msmw2  
這篇文章主要介紹了Keras框架中的epoch、bacth、batch size、iteration使用介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1、epoch

Keras官方文檔中給出的解釋是:“簡單說,epochs指的就是訓(xùn)練過程接中數(shù)據(jù)將被“輪”多少次”

(1)釋義:

訓(xùn)練過程中當(dāng)一個完整的數(shù)據(jù)集通過了神經(jīng)網(wǎng)絡(luò)一次并且返回了一次,這個過程稱為一個epoch,網(wǎng)絡(luò)會在每個epoch結(jié)束時報告關(guān)于模型學(xué)習(xí)進(jìn)度的調(diào)試信息。

(2)為什么要訓(xùn)練多個epoch,即數(shù)據(jù)要被“輪”多次

在神經(jīng)網(wǎng)絡(luò)中傳遞完整的數(shù)據(jù)集一次是不夠的,對于有限的數(shù)據(jù)集(是在批梯度下降情況下),使用一個迭代過程,更新權(quán)重一次或者說使用一個epoch是不夠的,需要將完整的數(shù)據(jù)集在同樣的神經(jīng)網(wǎng)絡(luò)中傳遞多次,隨著epoch次數(shù)增加,神經(jīng)網(wǎng)絡(luò)中的權(quán)重的更新次數(shù)也增加,模型從欠擬合變得過擬合。

2、batch

(1)keras官方文檔中給出的解釋:

深度學(xué)習(xí)的優(yōu)化算法,說白了就是梯度下降。每次的參數(shù)更新有兩種方式:

第一種,遍歷全部數(shù)據(jù)集算一次損失函數(shù),然后算函數(shù)對各個參數(shù)的梯度,更新梯度。這種方法每更新一次參數(shù)都要把數(shù)據(jù)集里的所有樣本都看一遍,計算量開銷大,計算速度慢,不支持在線學(xué)習(xí),這種稱為Batch gradient descent,批梯度下降

另一種,每看一個數(shù)據(jù)就算一下?lián)p失函數(shù),然后求梯度更新參數(shù),這個稱為隨機(jī)梯度下降,stochastic gradient descent.這個方法速度比較快,但是收斂性能不太好,可能在最優(yōu)點附近晃來晃去,hit不到最優(yōu)點,兩次參數(shù)的更新也有可能互相抵消掉,造成目標(biāo)函數(shù)震蕩的比較劇烈。

為了克服兩種方法的缺點,現(xiàn)在一般采用的是一種折中手段,mini-batch gradient decent,小批的梯度下降,這種方法把數(shù)據(jù)分為若干個批,按批來更新參數(shù),這樣,一個批中的一組數(shù)據(jù)共同決定了本次梯度的方向,下降起來就不容易跑偏,減少了隨機(jī)性。另一方面因為批的樣本數(shù)與整個數(shù)據(jù)集相比小了很多,計算量也不是很大。

(2)batch_size:

Keras中參數(shù)更新是按批進(jìn)行的,就是小批梯度下降算法,把數(shù)據(jù)分為若干組,稱為batch,按批更新參數(shù),這樣,一個批中的一組數(shù)據(jù)共同決定了本次梯度的方向,一批數(shù)據(jù)中包含的樣本數(shù)量稱為batch_size。

3、iteration

將數(shù)據(jù)分為幾個batch而不是一次性通過神經(jīng)網(wǎng)絡(luò)時,iteration是batch需要完成一個epoch的次數(shù),也就是number of batches (區(qū)別于 batch size) , 在一次epoch中 number of batches = iteration = 訓(xùn)練樣本總數(shù) / batch size

比如,對于一個有2000個訓(xùn)練樣本的數(shù)據(jù)集,將2000個樣本分成大小為500的batch,那么完成一個epoch需要4個iteration

4、batch size 和 epoch 的選取

(1)訓(xùn)練網(wǎng)絡(luò)過程中,一個batch中的樣本規(guī)模大小,即batch size 和epoch個數(shù)一起通過影響更新權(quán)重的頻率定義了網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)的速度。

對于固定的epoch:

(a)在合理范圍內(nèi),隨著batch size增大,跑完一次epoch所需的迭代數(shù)減少,對于相同數(shù)據(jù)量的處理速度進(jìn)一步加快,確定的下降方向越準(zhǔn),引起的訓(xùn)練震蕩越小。

(b)batch size 過大時,跑完一次epoch所需的迭代數(shù)減少,想要達(dá)到相同的精度,所花費的時間大大增加了,從而對參數(shù)的修正也變得緩慢,batch size增大到一定程度,其確定的下降方向已經(jīng)基本不再變化

對于固定的batch size:

(a)在合理范圍內(nèi)隨著epoch的增加,訓(xùn)練集和測試集的誤差呈下降趨勢,模型的訓(xùn)練有了效果

(b)隨著epoch的繼續(xù)增加,訓(xùn)練集的誤差呈下降而測試集的誤差呈上升趨勢,模型過擬合訓(xùn)練集對測試集性能不好

(2)實驗實驗,通過實驗+經(jīng)驗選取合適的batch size 和 epoch

補(bǔ)充知識:keras指定batchsize

具體的測試可以將keras中的第6.4程序

1、Sequential情況下

如果想要指定批次的大小,需要在第一層的輸入形狀中使用batch_input_shape

而不能使用input_shape,因為input_shape不能指定批次的大小,批次只能為None

input_shape和batch_input_shape。

input_shape 不包含批量大小,

batch_input_shape是全情投入的形狀,包括批量大小。

2、函數(shù)式情況下

Input參數(shù)

shape: 一個尺寸元組(整數(shù)),不包含批量大小。A shape tuple (integer), not including the batch size. 例如,shape=(32,) 表明期望的輸入是按批次的 32 維向量。

batch_shape: 一個尺寸元組(整數(shù)),包含批量大小。 例如,batch_shape=(10, 32) 表明期望的輸入是 10 個 32 維向量。

batch_shape=(None, 32) 表明任意批次大小的 32 維向量。

以上這篇Keras框架中的epoch、bacth、batch size、iteration使用介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas報錯AttributeError: DataFrame object has no attribute ix問題

    pandas報錯AttributeError: DataFrame object has&

    這篇文章主要介紹了pandas報錯AttributeError: DataFrame object has no attribute ix問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 關(guān)于Python中 循環(huán)器 itertools的介紹

    關(guān)于Python中 循環(huán)器 itertools的介紹

    循環(huán)器是對象的容器,包含有多個對象。通過調(diào)用循環(huán)器的next()方法 (__next__()方法,在Python 3.x中),循環(huán)器將依次返回一個對象。直到所有的對象遍歷窮盡,循環(huán)器將舉出StopIteration錯誤。這篇文章將對此做一個詳細(xì)介紹,感興趣的小伙伴請參考下面文字內(nèi)容
    2021-09-09
  • python怎么去除字符串最后的換行符‘\n’

    python怎么去除字符串最后的換行符‘\n’

    這篇文章主要介紹了python去除字符串最后的換行符'\n',本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • python 遍歷字符串(含漢字)實例詳解

    python 遍歷字符串(含漢字)實例詳解

    這篇文章主要介紹了python 遍歷字符串(含漢字)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • YOLOv5中SPP/SPPF結(jié)構(gòu)源碼詳析(內(nèi)含注釋分析)

    YOLOv5中SPP/SPPF結(jié)構(gòu)源碼詳析(內(nèi)含注釋分析)

    其實關(guān)于YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)其實網(wǎng)上相關(guān)的講解已經(jīng)有很多了,但是覺著還是有必要再給大家介紹下,下面這篇文章主要給大家介紹了關(guān)于YOLOv5中SPP/SPPF結(jié)構(gòu)源碼的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    在Python中,循環(huán)語句用于重復(fù)執(zhí)行一段代碼,直到滿足某個條件為止,在Python中,有兩種主要的循環(huán)語句:for循環(huán)和while循環(huán),本文就來給大家介紹一下這兩個循環(huán)的用法,需要的朋友可以參考下
    2023-08-08
  • Python中accumulate函數(shù)的用法詳解

    Python中accumulate函數(shù)的用法詳解

    累積(accumulate)函數(shù)是Python標(biāo)準(zhǔn)庫itertools中的一個強(qiáng)大工具,用于對可迭代對象進(jìn)行累積操作,下面我們將深入探討accumulate函數(shù)的用法,感興趣的小伙伴可以了解下
    2023-11-11
  • Python數(shù)據(jù)可視化之Matplotlib和Seaborn的使用教程詳解

    Python數(shù)據(jù)可視化之Matplotlib和Seaborn的使用教程詳解

    這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)可視化中Matplotlib和Seaborn使用的相關(guān)教程,文中的示例代碼講解詳細(xì),有需要的可以參考下
    2024-03-03
  • 詳解python string類型 bytes類型 bytearray類型

    詳解python string類型 bytes類型 bytearray類型

    這篇文章主要介紹了python string類型 bytes類型 bytearray類型,需要的朋友可以參考下
    2017-12-12
  • python實現(xiàn)FFT快速傅立葉變換算法案例

    python實現(xiàn)FFT快速傅立葉變換算法案例

    FFT(快速傅里葉變換)是計算DFT及其逆變換的一種算法,其基本思想是利用DFT的對稱性和周期性,通過分而治之的策略將DFT分解為更小的DFT,從而降低計算復(fù)雜度,FFT的算法步驟包括選擇分解、重新排序、蝶形運算和逐層計算,在Python中
    2024-10-10

最新評論

孟津县| 宣威市| 昌都县| 安义县| 苍溪县| 瓮安县| 治多县| 康马县| 会东县| 鹤峰县| 颍上县| 方正县| 江华| 南郑县| 开鲁县| 吐鲁番市| 阜南县| 台中县| 临武县| 福州市| 琼中| 灌阳县| 平武县| 辽阳县| 富川| 沾益县| 乾安县| 施甸县| 安徽省| 类乌齐县| 上蔡县| 巴里| 济宁市| 屏边| 莱州市| 靖边县| 阳高县| 常宁市| 武功县| 汾阳市| 永安市|