No module named ‘torchvision.models.utils‘

笔者在使用 pytorch=1.10.0, torchvision=0.11.1 的环境运行代码时,运行到语句 from torchvision.models.utils import load_state_dict_from_url 时会出现以下报错:


>>> from torchvision.models.utils import load_state_dict_from_url
Traceback (most recent call last):
  File "", line 1, in <module>
ModuleNotFoundError: No module named 'torchvision.models.utils'

而该语句在 pytorch=1.2.0, torchvision=0.4.0 以及 pytorch=1.6.0, torchvision=0.7.0 下均能运行。

相关博客指出:

报错原因是torchvision的版本0.2太低,安装个0.4的就可以的

因此,安装相应版本的 torchvision 确实可以解决这个问题,并且这个语法在低版本和最新的版本中都不支持了。

参考对不同版本的 torchvision.models 的源码解析,可以看出新旧版本在导入预训练模型时代码的区别。

– 方法一

安装相应的 torchvision 版本,目前实测 0.4.0~0.7.0 的版本均支持此类语句。

– 方法二

更改导入预训练模型的语句,可以借鉴ResNet源码的导入方式,使用

import torch.utils.model_zoo as model_zoo

model.load_state_dict(model_zoo.load_url(model_urls['resnet18']))

方式导入预训练模型。

– 方法三

The original code “from .utils import load_state_dict_from_url” is not applicable.

you connot import load_state_dict_from_url from .utils.

change “.utils” to “torch.hub” can fix the problem.

即将 from torchvision.models.utils import load_state_dict_from_url 改为 from torch.hub import load_state_dict_from_url
注意,此语法只针对较高版本的pytorch。

Original: https://blog.csdn.net/yyywxk/article/details/121489822
Author: yyywxk
Title: No module named ‘torchvision.models.utils‘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/706258/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球