使用单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
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
原文来自连接
不是第一次遇到了,但是遇到了真不会改,我只用下面两步就好了
1.torch报错:StopIteration: Caught StopIteration in replica 0 on device 0.
原因:多GPU运行此项目报错,可能是torch版本错误。
修改:按照别的博客将 weight = next(self.parameters()).data改为weight = torch.float32
2.仍报错:AttributeError: ‘torch.dtype’ no attrib
为什么我们多卡运行pytorch的时候会报错呢?如果你找遍了全网都没找到解决方法,那不妨看看本文:
torch.nn.Parameter(torch.zeros(dims, 1).type(torch.FloatTensor), requires_grad=True)
torch.autograd.Variable(torch.zeros(dims, 1).type(torch.FloatTensor), requires_grad=True)
Variable和P
# Prepare model
model = BertForMultipleChoice.from_pretrained(args.bert_model,
cache_dir=PYTORCH_PRETRAINED_BERT_CACHE / 'distributed_{}'.format(args.local_rank),
num_choices=4)
model.to(device)
import torch.nn as nn
# Prepare mod.
当使用next()去访问一个已经迭代完的迭代器时,会有这样的报错:StopIteration
解决方法就是给一个默认值:next(iter , 默认值),当迭代完成后会输出这个默认值
假设原来循环时的写法是:
a = next(iter_test) # 迭代完成会报错StopIteration
print(a)
a = next(iter_test,None)
if a is not None:
print(a)
如下代码会报错:
iter_list = iter([1,
跑
torch代码遇到这个问题。
博客上有类似的问题:
运行开源库CCPD-RPnet代码,提示「KeyError:
Caught KeyError in re
plica 0 on
device 0」错误
不过具体的错误提示和我的还是不一样。
通过官方论坛里的一个问题
主要问题是出现在DataParrallel上。
当在多个gpu上跑代码的时候就可能遇到这个问题。
解决方法就是用一块GPU跑。
在对调用pytorch_pretrained_bert时,如果用多个GPU出现StopIteration: Caught StopIteration in replica 0 on device 0.具体如下。
File "/home/yuangen_yu/CLUE/baselines/models_pytorch/classifier_pytorch/run_classifier.py", line 569, in
main()
File "/home/yuangen_yu/CLUE/baselines/
文章目录问题描述问题排查Solution
通过python3 demo.py -i ./demo -m ./models/fh02.pth运行CCPD代码,提示「KeyError: Caught KeyError in replica 0 on device 0」和「KeyError: <class ‘torch.Tensor’>」错误。
错误日志为:
/pytor...
问题:【PyTorch】RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling cublasSgemm()
解析:遇到这个问题的时候,我使用这条命令:pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
解决了这个问题,但是又遇到新的问题:StopIterati
1.
torch报错:
StopIteration:
Caught StopIteration in re
plica 0 on
device 0.
原因:多GPU运行此项目
报错,可能是
torch版本错误。
修改:按照别的博客将 weight = next(self.parameters()).data改为weight =
torch.float32
2.仍
报错:AttributeError: '
torch.dtype' no att
File “/home/yy/anaconda3/envs/py37/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
多gpu, torch1.6版本问题: