(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))

 

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版本了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章