使用Pytorch進行多卡訓練( 三 )


9、各進程優化器使用梯度更新其模型副本權重 。由于初始化時各進程模型、優化器權重一致,每次反向傳播梯度也保持一致,則所有進程的模型在整個訓練過程中都能保持一致 。
10、由于所有進程權重保持一致 , 我們只需通過一個進程保存即可 。
11、定義rank 0的IP和端口,使用mp.spawn,只需在主進程中定義即可 , 無需分別在子進程中定義 。
12、創建子進程,傳入:子進程調用的函數(該函數第一個參數必須是rank)、子進程函數的參數(除了rank參數外)、子進程數、是否等待所有子進程創建完畢再開始執行 。
參考: https://pytorch.org/tutorials/intermediate/ddp_tutorial.html
【使用Pytorch進行多卡訓練】

推薦閱讀