天天看點

OOM參考方法 待驗證

https://blog.csdn.net/ONE_SIX_MIX/article/details/82080331

将batch再分成多個 subbatch 之後累計本輪的梯度。前提是 batchesize=1的時候不能OOM

另外還有一個分成多個cache 每個cache 分成多個batch

那意思是這樣:

總資料 train_data = 1w

從總資料中分出 cache_size = 1000,得到10個 cache

從cache 中分出 batch_size = 100,得到10個batch

最終一共有 100個 batch

然後每次的訓練資料是一個batch,100個batch為一個epoch?

是這樣的嗎?

如果是這樣的話,跟直接将 1w總資料分成100個batch有什麼差別呀?

答:一次加載的資料量不同

估計就是這種方法

https://www.sohu.com/a/166403960_642762

還有一篇berkeley論文解讀 關于batch size的

使用 AlexNet 模型(2)在 NVIDIA K20 GPU 上訓練 ImageNet 資料集(1)需要 6 天才能實作 58% 的 top-1 準确度