pytorch DataParallel報錯解決
- 錯誤展示
- 問題原因
- 解決方法
錯誤展示
錯誤名稱:
StopIteration: Caught StopIteration in replica 0 on device 0.
包版本:
pytorch-pretrained-bert 0.6.2
torch 1.6.0
錯誤如下:


問題原因
使用單gpu的時候是正常的,但是使用多gpu的時候會報錯,問題是多gpu進行模型訓練的時候產生的,具體為,不能夠用多gpu加載預訓練的bert,應該是torch版本的問題,根據2可以知道,torch1.5版本有這個問題,我是torch1.6也有這個問題,據3替換為torch1.4可以解決該問題,
解決方法
比較簡單粗暴的解決方法如下:
注意有如下問題:
File "/miniconda/lib/python3.7/site-packages/pytorch_pretrained_bert/modeling.py", line 727, in forward
extended_attention_mask = extended_attention_mask.to(dtype=next(self.parameters()).dtype) # fp16 compatibility
進入site-packages目錄
/miniconda/lib/python3.7/site-packages/pytorch_pretrained_bert/modeling.py 這個路徑下的modeling.py腳本把727行的
next(self.parameters()).dtype換成torch.float32
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/193719.html
標籤:其他
