(PyTorch0.4.0) TypeError: 'NoneType' object is not iterable

1. 问题:TypeError: 'NoneType' object is not iterable

出现问题代码处: missing_keys, unexpected_keys = net.load_state_dict(torch.load(model_weight_path))

(PyTorch0.4.0) TypeError: 'NoneType' object is not iterable_第1张图片

 

2. 参考:【Python】python "TypeError: 'NoneType' object is not iterable"错误分析

出错原因:

  • 一般是函数返回值为None,并被赋给了多个变量。
  • 将None赋给多个值时,会出现提示:TypeError: 'NoneType' object is not iterable
  • 在没有return语句时,python默认会返回None。

 

3. 解决:

在train.py文件中 “ctrl+鼠标单击” 出错误代码处的load_state_dict函数,进入load_state_dict函数的定义文件module.py。看到此函数确实没有return语句,即没有返回值。那么python便会默认返回None。

 

去掉返回值,把代码missing_keys, unexpected_keys = net.load_state_dict(torch.load(model_weight_path))改成:

net.load_state_dict(torch.load(model_weight_path)),问题即可解决。

 

PS:

好像是因为我的PyTorch版本是0.4.0,版本比较老了,里面的load_state_dict函数和最新版本的不一样,而我运行的代码是别人在PyTorch1.3版本上写的。  看来应该是PyTorch版本惹的祸。

 

哎,估计要更新自己的PyTorch版本了。

(PyTorch0.4.0) TypeError: 'NoneType' object is not iterable_第2张图片

 

你可能感兴趣的:(论文学习)