相关文章推荐
飞奔的企鹅  ·  null value in python ...·  8 月前    · 
淡定的墨镜  ·  InMemoryDbContextOptio ...·  1 年前    · 

PyTorch找不到这个名字?(NameError: name 'device' is not defined)

2 人关注

sorry - I'm a complete beginner!

我正试图使用Torchreid库构建一个 "迷你系统",该库来自于 https://kaiyangzhou.github.io/deep-person-reid/index.html#

在他们的版本中,他们使用了CUDA,但我的Mac不兼容CUDA,也没有支持CUDA的GPU,所以我安装了PyTorch的纯CPU版本。 CUDA,所以我安装了只用CPU的PyTorch版本--因此我把 model = model.cuda() 改为 model = model.to(device) ,并加入了 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') ,你可以看到如下。我以为这样就可以了,但我一直得到 NameError: name 'device' is not defined ,我不知道该怎么做。 请帮助我。

(我还试着把 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 放在顶部而不是底部,看看是否有什么不同,但我只得到了另一个错误-- NameError: name 'torch' is not defined )。

model = torchreid.models.build_model(
    name='resnet50',
    num_classes=datamanager.num_train_pids,
    loss='softmax',
    pretrained=True
model = model.to(device)
optimizer = torchreid.optim.build_optimizer(
    model,
    optim='adam',
    lr=0.0003
scheduler = torchreid.optim.build_lr_scheduler(
    optimizer,
    lr_scheduler='single_step',
    stepsize=20
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    
python
pytorch
gpu
device
alii-shahh
alii-shahh
发布于 2021-03-18
2 个回答
trsvchn
trsvchn
发布于 2021-03-18
已采纳
0 人赞同

在使用前定义 device 变量。

import torch
model = torchreid.models.build_model(
    name='resnet50',
    num_classes=datamanager.num_train_pids,
    loss='softmax',
    pretrained=True
# Just right before the actual usage
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = model.to(device)
    
José Miguel Cordero Carvacho
José Miguel Cordero Carvacho
发布于 2021-03-18
0 人赞同

Import the torch module.