PyTorch自定义ResNet18迁移学习导入模块报无属性错误如何解决
自定义ResNet18导入报错修复方案
该AttributeError为Python模块导入时未找到对应属性导致,按以下步骤排查修复即可:
1. 排查文件路径与命名问题
- 确认
custom_resnet18.py与transfer_learning.ipynb存放在同一个文件夹,且已将完整的ResNet代码成功保存到custom_resnet18.py中,无内容遗漏。 - 若py文件存放在其他路径,先将对应路径加入Python搜索路径再导入:
import sys # 替换为custom_resnet18.py实际所在文件夹的绝对路径 sys.path.append("/path/to/custom_resnet18/folder") import custom_resnet18
- 检查同文件夹下是否存在重名的
custom_resnet18.py文件、或名为custom_resnet18的文件夹,重名会导致导入优先级异常,删除/重命名冲突文件即可。
2. 清理Jupyter内核缓存
Jupyter运行时会缓存已导入的模块,修改py文件后不会自动同步更新,优先重载模块验证:
import importlib importlib.reload(custom_resnet18)
若重载后仍报错,直接重启Jupyter内核,再重新运行代码即可。
3. 验证模块可调用属性
执行以下代码输出模块所有可调用属性,确认ResNet18是否在输出列表中:
import custom_resnet18 print(dir(custom_resnet18))
若输出列表中无ResNet18,说明你保存的py文件内容不全,重新粘贴完整代码保存即可。
4. 替换导入写法(可选)
上述步骤验证无误后,也可直接导入指定函数规避问题:
from custom_resnet18 import ResNet18 model_ft = ResNet18()
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

