微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PyTorch 找不到名字?? NameError:未定义名称“设备” 对不起 - 我是一个完整的初学者!

如何解决PyTorch 找不到名字?? NameError:未定义名称“设备” 对不起 - 我是一个完整的初学者!

对不起 - 我是一个完整的初学者!

我正在尝试使用 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')

解决方法

在使用前定义 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)
...
,

导入火炬模块。

import torch

在代码的顶部。

(请记住始终导入您正在使用的库)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。