1. 参考文章:https://blog.****.net/qq_38101208/article/details/110481390
2. 自己再进行一次梳理:
分别是:
-model实例
-Loss_func实例
-训练的数据x以及参考的label
备注:传进GPU的只能是tensor类型
#(1)判断GPU是否可用
if torch.cuda.is_available():
device = torch.device('cuda')
cudnn.benchmark = True
else:
device = torch.device('cpu')
#(2)构建网络时,把网络,与损失函数转换到GPU上
model = CNN().to(device)
loss = nn.CrossEntropyLoss().to(device)
#(3)训练网络时,把数据转换到GPU上
x, y = x.to(device), y.to(device)
# 注,只有tensor类型才能上传到GPU上,故需要对numpy数据进行转换成rensor类型
# torch.tensor(x) 或 torch.from_numpy(x)
#两者的区别见 https://blog.****.net/github_28260175/article/details/105382060
#(4)对训练的输出结果有些需要使用np的函数进行操作,需先将输出结果转到CPU上,并转成numpy类型,再使用np的函数
output = (model(x)).cpu().numpy()