gradient_accumulation_steps --梯度累加理解
參考:
 https://blog.csdn.net/Princeicon/article/details/108058822
 https://blog.csdn.net/weixin_43643246/article/details/107785089
假設情景:
 batch_size = 10 #每批次大小
 total_num = 1000 #數據總量
 按照 訓練一個批次數據,更新一次梯度;
 訓練步數 train_steps = 1000 / 10 = 100
 梯度更新步數 = 1000 / 10 = 100
當顯存不足以支持每次 10 的訓練量!
 需要減小 batch_size
通過設置gradient_accumulation_steps = 2
 batch_size = 10 / 2 =5
 即訓練2個批次數據,更新一次梯度,每個批次數據量為5(減小了顯存壓力,但未改變梯度更新數據量–10個數據一更新)
結果:訓練步數 tran_steps = 1000 / 5 = 200 增加了一倍
 梯度更新步數 1000 / 10 = 100 未改變
總結:梯度累加就是,每獲取1個batch的數據,計算一次梯度,梯度不清空,不斷累加,累加到gradient_accumulation_steps次數后,根據累加梯度更新參數,清空梯度,進行下一次循環。
總結
以上是生活随笔為你收集整理的gradient_accumulation_steps --梯度累加理解的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Lifelong Person Re-I
- 下一篇: 在Linux中修复U盘
