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(样本数量)
网友评论