Torch 在 Docker 容器中找不到文件

问题描述 投票:0回答:0

我正在尝试运行 following repo,它基本上是一个用于 ControlNet/Stable Diffusion 的 Docker 容器。它需要我先下载模型文件,我已经完成了,然后你可以运行容器来生成图像。

没有对 repo 做任何更改,我得到一个错误,指出找不到

v1-5-pruned.ckpt
文件:

Traceback (most recent call last):
File "/root/.pyenv/versions/3.8.16/lib/python3.8/site-packages/cog/server/worker.py", line 185, in _setup
run_setup(self._predictor)
File "/root/.pyenv/versions/3.8.16/lib/python3.8/site-packages/cog/predictor.py", line 49, in run_setup
predictor.setup()
File "predict.py", line 33, in setup
self.canny_model = load_model(canny_model_name)
File "predict.py", line 243, in load_model
torch.load(os.path.abspath('./models/v1-5-pruned.ckpt'))
File "/root/.pyenv/versions/3.8.16/lib/python3.8/site-packages/torch/serialization.py", line 699, in load
with _open_file_like(f, 'rb') as opened_file:
File "/root/.pyenv/versions/3.8.16/lib/python3.8/site-packages/torch/serialization.py", line 230, in _open_file_like
return _open_file(name_or_buffer, mode)
File "/root/.pyenv/versions/3.8.16/lib/python3.8/site-packages/torch/serialization.py", line 211, in __init__
super(_open_file, self).__init__(open(name, mode))
FileNotFoundError: [Errno 2] No such file or directory: '/src/models/v1-5-pruned.ckpt'
ⅹ Model setup failed

要重现此错误,只需克隆 repo,下载模型权重并使用

cog
运行预测。

这是它失败的功能:


def load_model(name):
    model = create_model(f'./models/{name}.yaml').cpu()
    torch.load(os.path.abspath('./models/v1-5-pruned.ckpt'))
    model.load_state_dict(load_state_dict(f'./models/v1-5-pruned.ckpt', location='cuda'), strict=False)
    model.load_state_dict(load_state_dict(f'./models/{name}.pth', location='cuda'), strict=False)
    model = model.cuda()
    return model

现在,我检查了容器,确定模型文件在那里。我假设问题与使用的(相对)路径有关,并且它们与文件夹结构不匹配。我试图以各种方式改变路径以使其指向正确的位置,但我就是想不通。

这里发生了什么? Torch 加载文件的基本路径是否与其余代码不同?

python docker pytorch torch replicate
© www.soinside.com 2019 - 2024. All rights reserved.