PyTorch找不到名字??(名称错误:名称“设备”未定义)

ali*_*ahh 2 python gpu device pytorch

抱歉 - 我是一个完全的初学者!

我正在尝试使用https://kaiyangzhou.github.io/deep-person-reid/index.html#中的 Torchreid 库构建一个“迷你系统”

在他们的版本中,他们使用 CUDA,但我的 Mac 与 CUDA 不兼容,并且没有启用 CUDA 的 GPU,因此我安装了仅 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')
Run Code Online (Sandbox Code Playgroud)

trs*_*chn 5

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)
...
Run Code Online (Sandbox Code Playgroud)