pytorch0.4的变化(逐渐更新)

pytorch0.4更新



Tensor/Variable合并

tensor可以直接反向求导。需要设置requires_grad属性为True

计算梯度时候,X输入需要设定require属性,y输出无需设置。两个均为tensor格式。

tensor的梯度计算不会浪费,比如w=a+b,a的grad为True,b的grad为False,那么a.grad进行计算,b.grad为none

tensor.requires_grad_()可以把requires_grad设置为True

tensor.data()可以获取内容,但是修改内容不会被grad跟踪,如果用tensor.detach()获得数据,可以被grad跟踪

增加了零维度的tensor,最为常见的是loss,不再是variable数据,而是零维度的tensor

tensor.itrm()可以提取tensor里面的数据。item只适合单一数字。比如零维度tensor


CUDA的加入

函数后面加入.cuda()

torch.device('cuda')用来设定使用cpu还是gpu,例如

    device=torch.device("cuda"if use_cudaelse"cpu")

    model=MyRNN().to(device)



画图相关

画图时候先要将GPU数据放入CPU  torch.Tensor.cpu()

然后tensor转为numpy数据  tensor.numpy()



dropout

训练反响传递时候开启dropout,预测时候关闭dropout



自定义数据

数据可以自定义,通过Data.TensorDataset(x,y)进行打包,x为训练数据,y为训练标签。

再通过Data.DataLoder进行batch分散。

x的形式可以是a(样本数量)*b(数据1)*c(数据2)*d(数据3)

y的形式是a(样本数量)

你可能感兴趣的:(pytorch0.4的变化(逐渐更新))