1. 程式人生 > >pytorch:batchsize不能整除訓練資料大小的解決方案

pytorch:batchsize不能整除訓練資料大小的解決方案

本文討論的是不使用dataloader的情況下,怎麼解決batchsize不能整除訓練資料大小的問題。

方案1,尋找可以整除訓練資料大小的batchsize

比如訓練資料一共50000萬個,每個批次35個數據就不合適,可以設定成50個。

方案2,捨棄不能整除的部分資料

比如,batchsize是50,訓練資料總個數是50025,那麼就要捨棄最後的25個訓練資料。

方案3,增加訓練資料

你可以臨時再去收集一些資料集,或者在資料不足的批次把資料庫中的資料重複利用,擴充資料集。

方案4,不能整除的資料併入下次迴圈

也就是說基本上每個資料用到的次數是等同的。

方案5,把不能整除的部分也作為一個批次訓練

雖然批資料的數量少了,但是依然可以送進網路進行訓練。具體做法是,遍歷資料集的時候,設定一個計數變數。如果這個變數達到了batchsize的大小,就送到網路進行訓練;再或者,如果遍歷到了資料集的末尾,也送進網路進行訓練。