每輪訓練步數 使用指南
輸入資料集規模與批次大小,計算每輪訓練步數,適用於訓練迴圈實現、步數對齊與分散式分片核對。
計算公式與原理
每卡步數 = ⌈樣本數 / 批次⌉;每步覆蓋樣本 = 批次 × 卡數
多卡資料並行時,全域性批次 = 單卡批次 × 卡數,每卡步數不變但每步實際看到的樣本翻倍數等於卡數。因此擴卡後要保持等效訓練強度,需按比例調大學習率或增加輪數。
使用步驟
- 填寫「資料集大小」。
- 填寫「批次大小」。
- 填寫「GPU 數」。
- 結果區會即時更新;可一鍵複製結果用於記錄或彙報。
典型使用場景
- 每輪步數 steps=⌈資料集樣本數/batch_size⌉,決定單輪迭代次數。
- 分散式下每卡步數=⌈N/(batch×world_size)⌉,注意尾批與丟棄策略。
- 步數×單步耗時≈單輪時長,是訓練排期與進度估算的基礎。
算例參考
- 步數計算:N=50000, batch=64 → steps=⌈50000/64⌉=782 步/輪。4 卡資料並行每卡 batch=64 則每卡 782 步(總樣本不變),等效 batch=256 使收斂更快。
注意事項
結果為按上述公式得到的理論估算值,實際表現受資料分佈、實現細節與執行環境影響,落地決策請以實測為準;本工具純前端執行,輸入不上傳伺服器。
- 分散式每卡步數變少嗎?
- 若每卡 batch 不變,每卡處理的樣本數減少,步數按每卡樣本算會減少;總計算量不變,只是並行加速,等效 batch 變大了。
- 尾批怎麼影響步數?
- 向上取整已含尾批(不足 batch 的餘量)。若啟用 drop_last 則步數=⌊N/batch⌋,少算一個不完整批,需在指標上對應處理。