您好,登錄后才能下訂單哦!
這篇文章主要介紹“batch、epoch、iteration的含義是什么”,在日常操作中,相信很多人在batch、epoch、iteration的含義是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”batch、epoch、iteration的含義是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
第一種,遍歷全部數據集算一次損失函數,然后算函數對各個參數的梯度,更新梯度。這種方法每更新一次參數都要把數據集里的所有樣本都看一遍,計算量開銷大,計算速度慢,不支持在線學習,這稱為Batch gradient descent,批梯度下降。
另一種,每看一個數據就算一下損失函數,然后求梯度更新參數,這個稱為隨機梯度下降,stochastic gradient descent。這個方法速度比較快,但是收斂性能不太好,可能在最優點附近晃來晃去,hit不到最優點。兩次參數的更新也有可能互相抵消掉,造成目標函數震蕩的比較劇烈。
為了克服兩種方法的缺點,現在一般采用的是一種折中手段,mini-batch gradient decent,小批的梯度下降,這種方法把數據分為若干個批,按批來更新參數,這樣,一個批中的一組數據共同決定了本次梯度的方向,下降起來就不容易跑偏,減少了隨機性。另一方面因為批的樣本數與整個數據集相比小了很多,計算量也不是很大。
現在用的優化器SGD是stochastic gradient descent的縮寫,但不代表是一個樣本就更新一回,還是基于mini-batch的。
那 batch epoch iteration代表什么呢?
(1)batchsize:批大小。在深度學習中,一般采用SGD訓練,即每次訓練在訓練集中取batchsize個樣本訓練;
(2)iteration:1個iteration等于使用batchsize個樣本訓練一次;
(3)epoch:1個epoch等于使用訓練集中的全部樣本訓練一次,通俗的講epoch的值就是整個數據集被輪幾次。
比如訓練集有500個樣本,batchsize = 10 ,那么訓練完整個樣本集:iteration=50,epoch=1.
batch: 深度學習每一次參數的更新所需要損失函數并不是由一個數據獲得的,而是由一組數據加權得到的,這一組數據的數量就是batchsize。
batchsize最大是樣本總數N,此時就是Full batch learning;最小是1,即每次只訓練一個樣本,這就是在線學習(Online Learning)。當我們分批學習時,每次使用過全部訓練數據完成一次Forword運算以及一次BP運算,成為完成了一次epoch。
tf.clip_by_value(A, min, max):輸入一個張量A,把A中的每一個元素的值都壓縮在min和max之間。小于min的讓它等于min,大于max的元素的值等于max。
import tensorflow as tf; import numpy as np; A = np.array([[1,1,2,4], [3,4,8,5]]) with tf.Session() as sess: print sess.run(tf.clip_by_value(A, 2, 5)) 輸出: [[2 2 2 4] [3 4 5 5]]
到此,關于“batch、epoch、iteration的含義是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。