Pytorch错误集锦

RuntimeError: Expected one of cpu, cuda, mkldnn, opengl, opencl, ideep, hip, msnpu device type at start of device string: 0

在python\lib\site-packages\torch\cuda_init_.py文件在这里插入代码片中的set_device方法修改

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  yaml_cfg = edict(yaml.load(f))

方法一: 在config.py文件中修改cfg_from_file方法(见错误日志),
为yaml_cfg = edict(yaml.load(f), Loader=yaml.FullLoader)
方法二: 更新yaml
pip install pyyaml==3.12
3.

assert语句:
断言:assert语句用于检测表达式是否为真,如果为假,引发AssertionError错误。
语法:assert expression [,args]
expression:表达式
 size mismatch for encoder.weight: copying a param with shape torch.Size

查了半天结果是用了gpu,这是因为在多gpu上训练的模型在保存时候在参数名前多加了一个“module.”前缀,加载的时候把这个前缀去掉就行了:

device = torch.device('cpu')
# device = torch.device('cuda:0')
state_dict = torch.load('xxx.pth', map_location=device)
 
from collections import OrderedDict
state_dict_new = OrderedDict()
for k, v in state_dict.items():
    name = k[7:]  # 去掉 `module.`
    state_dict_new[name] = v
 
model.load_state_dict(state_dict_new)
 
model.eval()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值