Python Pytorch torch.load ModuleNotFoundError:没有名为';utils';

Python Pytorch torch.load ModuleNotFoundError:没有名为';utils';,python,machine-learning,pytorch,Python,Machine Learning,Pytorch,我正在试着用torch.load加载一个经过预训练的模型 我得到以下错误: ModuleNotFoundError: No module named 'utils' 我已经通过从命令行打开它来检查我使用的路径是否正确。这可能是什么原因造成的 这是我的密码: import torch import sys PATH = './gan.pth' model = torch.load(PATH) model.eval() 编辑: 整个错误堆栈: Traceback (most recent

我正在试着用torch.load加载一个经过预训练的模型

我得到以下错误:

ModuleNotFoundError: No module named 'utils'
我已经通过从命令行打开它来检查我使用的路径是否正确。这可能是什么原因造成的

这是我的密码:

import torch
import sys

PATH = './gan.pth'

model = torch.load(PATH)
model.eval()

编辑: 整个错误堆栈:

Traceback (most recent call last):
  File "load.py", line 6, in <module>
    model = torch.load(PATH)
  File "C:\Users\user\anaconda3\envs\pytorch-flask\lib\site-packages\torch\serialization.py", line 595, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "C:\Users\user\anaconda3\envs\pytorch-flask\lib\site-packages\torch\serialization.py", line 774, in _legacy_load
    result = unpickler.load()
ModuleNotFoundError: No module named 'utils'
回溯(最近一次呼叫最后一次):
文件“load.py”,第6行,在
模型=火炬荷载(路径)
文件“C:\Users\user\anaconda3\envs\pytorch flask\lib\site packages\torch\serialization.py”,第595行,已加载
返回\u旧版\u加载(打开的\u文件、映射\u位置、pickle\u模块、**pickle\u加载\u参数)
文件“C:\Users\user\anaconda3\envs\pytorch flask\lib\site packages\torch\serialization.py”,第774行,在\u legacy\u load中
结果=unpickler.load()
ModuleNotFoundError:没有名为“utils”的模块

编辑此答案不提供问题的答案,但解决给定代码中的另一个问题

.pth
文件只存储模型的参数,而不是模型本身。当您想要加载一个模型时,您需要模型类的
.pt/-h
文件和python代码。然后您可以这样加载它:


#你的模型
为您的模型分类(nn.模块):
定义初始化(自):
超级(你的模型,你自己)
. . .
def前进(自身,x):
. . .
#pytorch保存文件,用于存储经过训练的模型
model_file=“”
模型=模型()
model=model.load\u state\u dict(torch.load(model\u文件))
model.eval()

我也有同样的错误,我想知道问题出在哪里。 问题是,使用
torch.load()
保存的数据需要模块
utils

例如:

from utils import some_function 
model = some_function()
torch.save(model)

在给定示例中使用torch保存时,它识别出模块utils用于获取所需数据。因此,在加载“.pth”文件时,您需要导入相同的模块
utils

您确定能够运行此特定文件(无
model=torch.load(PATH);model.eval()
)?你有没有提到其他依赖项(导入)?@Ivan有。文件没有最后两行就运行了。你能给我们完整的错误堆栈吗?@Ivan添加到帖子的底部。你知道这个
.pth
文件是如何保存的(使用了哪个函数)?虽然这是真的,但它没有提供问题的答案。问题似乎出在
model=torch.load(PATH)
上。我们猜不出那里面是什么,
.pth
…是的,我只是注意到错误并不是由此产生的