【发布时间】:2021-12-30 23:34:09
【问题描述】:
我正在尝试使用 pytorch 训练 DNN 模型,并且我想使用 GPU 来训练我的模型。我能够使用model.to(device) 成功地将我的模型复制到GPU,其中device = cuda:0。
但是,将输入复制到 GPU 的标准方法 (RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same),即 X.to(device) 和 X.cuda() 并没有给我想要的输出。以下是我目前正在实施的方法:
def train_loop(self, dataloader, device):
size = len(dataloader.dataset)
for batch, (X, y) in enumerate(dataloader):
# Compute prediction and loss
print(device)
X.to(device)
print(X.is_cuda)
y.to(device)
pred = self.model(X)
loss = self.loss_fn(pred, y)
在打印设备值print(device) 时,它显示为:cuda:0。但是当我运行print(X.is_cuda) 时,它会返回false。 (下面附上截图)。
请告诉我哪里出错了。谢谢!
【问题讨论】:
标签: python machine-learning deep-learning pytorch