我有 21 個 ANN 訓練程序要運行。
我手上有四臺電腦。其中三個配備了 GPU(每個有兩個 GPU)。
在最短的時間內運行流程以激活培訓的最佳方法是什么?
uj5u.com熱心網友回復:
這個問題不可能有明確的答案。從方向上講,您需要考慮的一些事情是:
您是否已將模型調整為受到 GPU 而不是 CPU 的瓶頸?這是 DL 培訓的最佳實踐。
您是否有一組經過良好調整的訓練超引數?通過適當的調整,您可以顯著降低訓練速度 - 就像數量級一樣。(在 V100 上訓練 34 秒即可在 CIFAR10 上獲得 SOTA 性能。如果你自己摸索幾天,可能需要 30 分鐘的訓練才能獲得 SOTA 準確性)。
你有能力擴展批量大小嗎?“在 76 分鐘內訓練伯特”論文談到了一些技術,從熱身到基本上是 LARS Adam 的新優化器。
您是否有在一臺機器上擴展到多個 GPU 的經驗?通常在 TF2/Keras 中沒有那么難。你有擴展到多臺機器的經驗嗎?我還沒有做過,但假設它有點難。
TLDR 如果您對以上所有內容都沒有信心,那么并行運行 7 個模型在方向上會更好。
如果您對以上內容很有信心,可以嘗試擴展到所有 7 個 GPU。
如果您介于兩者之間,您可以嘗試并行運行 4 個訓練作業,每臺機器一個,對于其中三個,使用雙 GPU。
uj5u.com熱心網友回復:
我建議您使用多 GPU 訓練并一次訓練一個模型。所以在每臺電腦上用兩個 gpu 訓練一個模型。
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" # 使用兩個 GPU 進行訓練。
這是如何使用多個 gpu 的示例:
strategy = tf.distribute.MirroredStrategy(devices=["/device:GPU:0","/device:GPU:1"])
with strategy.scope():
model = get_model()
model.compile()
model.fit()
使用鏡像策略,批量大小將被拆分。所以你可以使用更大的批量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/381042.html
