2017-07-16 57 views
0

我正在使用GPU訓練深度神經網絡。如果我製作過大的樣本或太大的批次或太深的網絡,我會不時發現內存不足的錯誤。在這種情況下,有時可以製造更小的批次並繼續訓練。如何自動選擇批量大小以適應GPU?

是否可以計算訓練所需的GPU大小並預先確定要選擇的批量大小?

UPDATE

如果我普林網絡摘要,它顯示的 「可訓練參數」 號碼。我不能從這個數值估算嗎?例如,採取這種方式,乘以批量大小,雙重梯度等?

回答

1

不,不可能自動執行此操作。因此,如果您希望批次儘可能多,則需要經過大量試驗和錯誤才能找到合適的大小。

Stanford's CNN class提供了一些指導如何估計內存大小,但所有的建議都與CNN有關(不知道你在訓練什麼)。

0

我覺得薩爾瓦多在這裏表示,這是不可能的分析計算最適合批量大小,但是,因爲所有的東西都在ML,它只是另一個超參數,可以添加到您的網格搜索是自動計算。簡單地評估你的模型的損失或準確性(但你衡量性能),給出幾個批量大小的最佳和最穩定(最小可變)度量,比如一些2的冪,例如64,256,1024等。然後繼續使用最好的找到批量大小。請注意,批量大小可以取決於您的模型的體系結構,機器硬件等。例如,如果您將建模從本地PC移動到某個雲計算引擎(GCP,AWS,Azure,...),則批量大小爲對於你的電腦來說太大了,RAM變得很容易適用於幾乎無限的RAM/CPU/GPU(注意成本)。

相關問題