pytorch使用gpu的机制是,将所建立的模型、以及训练集的tensor直接建立在gpu上。
具体实现如下:
net = Net()
device = torch.device('cuda:0') # ****************************
net.to(device) # ****************************
。。。。。。。
。。。。。。。
for i, data in enumerate(trainloader, 0):
inputs, labels = data
inputs = inputs.to(device) # ****************************
labels = labels.to(device) # ****************************
其中重点是这三行,分别将模型、xy真值建立在gpu上。
net.to(device)
inputs = inputs.to(device)
labels = labels.to(device)
注意的是,net.to(device)直接就地改变,inputs.to和labels.to均需要新建变量接一下,否则不会改变原值。