PyTorch查看模型和数据是否在GPU上

模型和数据可以在CPU和GPU上来回迁移,怎么判断模型和数据在哪里呢?

import torch
import torch.nn as nn

# ----------- 判断模型是在CPU还是GPU上 ----------------------

model = nn.LSTM(input_size=10, hidden_size=4, num_layers=1, batch_first=True)
print(next(model.parameters()).device)  # 输出:cpu

model = model.cuda()
print(next(model.parameters()).device)  # 输出:cuda:0

model = model.cpu()
print(next(model.parameters()).device)  # 输出:cpu

# ----------- 判断数据是在CPU还是GPU上 ----------------------

data = torch.ones([2, 3])
print(data.device)  # 输出:cpu

data = data.cuda()
print(data.device)  # 输出:cuda:0

data = data.cpu()
print(data.device)  # 输出:cpu

此外,用.is_cuda也可以判断模型和数据是否在GPU上,例如: data.is_cuda 

模型和数据在GPU和CPU之间进行迁移的方法,更具体的可以参考:把数据和模型迁移到GPU: .cuda()方法和.to(device)方法 

 

posted @ 2020-09-26 21:25  Picassooo  阅读(33301)  评论(0编辑  收藏  举报