原
訓練時的Iteration、batchsize、epoch和loss的關系
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
batchsize:批處理大小。一次訓練所選取的樣本數。 它的大小影響模型的優化程度和速度。
Iteration:迭代次數。一次Iteration就是batchsize個訓練數據前向傳播和反向傳播后更新參數的過程。
epoch:所有訓練數據前向傳播和反向傳播后更新參數的過程。也就是我們認為的所有數據集跑了一遍。
如果訓練集大小是100000。batchsize為100,那么一個epoch需要1000次Iteration。
即:1 epoch = 訓練集大小(100000) / batchsize(100) = 1000次Iteration
- 1
loss:在訓練過程中,訓練日志中會輸出loss值。這個loss值是每一個Iteration得到的loss值,也就是一個batchsize個訓練數據前向傳播和反向傳播后更新參數的過程之后得到的loss值。
其實每次迭代都會得到一個loss值,只是我們在solver.prototxt中設置了display超參數,隔多少次顯示一次。
更簡單直接的理解就是, Iteration 0, loss = 0.693502,代表的是沒有迭代時的loss, Iteration 1, loss =~~代表的是第一次迭代時的loss,也就是第一個batchsize個訓練數據的loss,同理,第50次代表50個batchsize個訓練數據的loss。
作者:GL3_24
來源:CSDN
著作權歸作者所有。轉載請聯系作者獲得授權。
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
</div>
</article>