我正在用cudaconvnet和Daniel Nouri的noccn模塊進行圖像分類,並希望通過拍攝大量原始圖像的補丁(並翻轉它)來實現數據增強。什麼時候最適合發生這種情況?用卷積神經網絡實現圖像分類的數據增強
我已經確定了3個階段在訓練過程中何時能:給定一個批次
一)從數據創建批處理時,
B)獲得下一批何時訓練
C),獲得當下一張圖片以進入網絡
在我看來,a)的優勢在於我可以將增強數據分散到所有批次中。但它將佔用磁盤空間的1000倍原始數據集已經是1TB,因此完全不可行。
b)和c)不涉及將新數據存儲在磁盤上,但可以批量分散數據嗎?如果我不這樣做,那麼假設我有batch_size == 128,並且我可以擴充我的數據1000x,那麼接下來的8批將包含來自同一類的圖像。訓練網絡並不壞,因爲每個訓練樣本根本不會被隨機化?此外,如果我選擇b)或c)並從k個訓練樣例中創建一個新批次,那麼數據增加n次將使批量n * k而不是多次批量n次。
例如,在我的情況下,我有batchsize == 128,可以預計1000倍數據增強。因此,每個批次實際上的大小爲128 * 1000,我會得到的是更精確的偏導數估計值(對於無用的程度,因爲batchsize == 128k是無意義的高)。
那我該怎麼辦?
這是否意味着你的模型永遠不會看到實際的地面真相圖像,但始終是圖像的修改版本? – Demonedge
@Demonedge你的一個隨機增強可能無能爲力。 – Alex