簡體   English   中英

如何進行更快的深度強化學習訓練

[英]How to make faster deep reinforcement learning training

如您所知,使用單個 CPU 進行深度強化學習 (DRL) 訓練可能需要 10 天以上的時間。 使用並行執行工具(如 CUDA),訓練時間最多減少 1 天(取決於 CPU 和 GPU 功能)。 但是使用CUDA時,GPU的使用率在10%左右,訓練時間還是太長了。 對於想要在開發代碼時經常檢查結果的開發人員來說,這非常令人不安。 在編碼技巧、構建 model、設置、GPU 硬件等方面,您有什么建議盡可能減少訓練時間。

文檔

默認情況下,TensorFlow 映射幾乎所有對進程可見的所有 GPU 的 GPU memory(受 CUDA_VISIBLE_DEVICES 約束)

因此,您不必更改任何設置以允許更多 GPU 使用。 因此,最快的檢查可能是batch size是否足夠大 - 您可能根本沒有充分利用可用的 memory。 嘗試將批量大小增加到出現 OOM 錯誤的程度,然后將其縮小一點以使其正常工作。

如果您可以訪問多個 GPU,則可以使用 tensorflow 中的分布式策略來確保所有 GPU 都在使用:

mirrored_strategy = tf.distribute.MirroredStrategy()
with mirrored_strategy.scope():
       <your model training code>

此處查看文檔

鏡像策略用於在單個服務器上跨多個 GPU 進行同步分布式訓練。 這個博客里也有更直觀的解釋。

最后,為了更有效的處理,您可以使用混合精度來更改模型間參數的數據類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM