簡體   English   中英

Pytorch torch.load ModuleNotFoundError: No module named 'utils'

[英]Pytorch torch.load ModuleNotFoundError: No module named 'utils'

我正在嘗試使用 torch.load 加載預訓練的 model。

我收到以下錯誤:

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'

編輯此答案不提供問題的答案,但解決給定代碼中的另一個問題

.pth文件僅存儲 model 的參數,而不是 model 本身的參數。 當您想加載 model 時,您將需要.pt/-h文件和 model ZA2F2ZZA.A8E9A3B755DDZ 代碼的 python 代碼然后你可以像這樣加載它:


# your model
class YourModel(nn.Modules):
    def __init__(self):
        super(YourModel, self).__init__()
        . . .

    def forward(self, x):
        . . .

# the pytorch save-file in which you stored your trained model
model_file = "<your path>"

model = Model()
model = model.load_state_dict(torch.load(model_file))

model.eval()

我遇到了同樣的錯誤,想知道問題出在哪里。 原來問題是使用torch.load()保存的數據需要模塊utils

例子:

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

在給定示例中使用 torch 保存時,它會識別出模塊 utils 用於獲取所需的數據。 因此,在加載“.pth”文件時,您需要導入相同的模塊utils

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM