关于上传到GPU:这个地方之前一直没有弄清楚
1. 参考文章:https://blog.csdn.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.csdn.net/github_28260175/article/details/105382060#(4)对训练的输出结果有些需要使用np的函数进行操作,需先将输出结果转到CPU上,并转成numpy类型,再使用np的函数
output = (model(x)).cpu().numpy()