PyTorch 权限错误: [Errno 13] 权限被拒绝: '/.torch'

3
我正在运行一个基于PyTorch的图像分类ML程序,使用Resnet50模型进行迁移学习。我遇到了关于权限的以下错误。
Traceback (most recent call last): File "imgc_pytorch.py", line 67, in   model = models.resnet50(pretrained=True) File "/opt/conda/lib/python3.6/site-packages/torchvision/models/resnet.py", line 187, in resnet50   model.load_state_dict(model_zoo.load_url(model_urls['resnet50'])) File "/opt/conda/lib/python3.6/site-packages/torch/utils/model_zoo.py", line 59, in load_url   os.makedirs(model_dir) File "/opt/conda/lib/python3.6/os.py", line 210, in makedirs   makedirs(head, mode, exist_ok) File "/opt/conda/lib/python3.6/os.py", line 220, in makedirs   mkdir(name, mode) PermissionError: [Errno 13] Permission denied: '/.torch'
在这个论坛上查找后,有人建议在文件名前添加'sudo',但是会出现错误"/bin/sh: 1: sudo: not found"。

我正在使用公司提供的GPU集群部署这段代码。 - sigmoid
1个回答

1

您可以将model_zoo.load_url(model_urls['resnet50'])更改为model_zoo.load_url(model_urls['resnet50]', model_dir='~/.torch/'),类似于this


既然这是在集群上,看起来管理员会需要做这个对吧? - sigmoid
@sigmoid 我想不是这样的。我的意思是你还有一个用户在那里,对吧?所以你可以放心地将相关模型下载到你的主目录中。 - Separius
我从未使用过容器,所以不是很清楚,但您可以根据model_urls下载模型并将文件复制到容器中,然后使用model_zoo进行加载,对吧? - Separius
1
谢谢,我会尝试的...希望我能给你点赞,但是我的声望不够。 - sigmoid
不,我还在想着怎么做...顺便问一下,在哪里可以更改到model_zoo.load_url(model_urls['resnet50'], model_dir='~/.torch/')? - sigmoid
2
TORCH_HOME=/mnt/test/torch export TORCH_HOME;cd /mnt/test;python imgc_pytorch.py 这个命令解决了问题。现在可以正常工作了。 - sigmoid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接