pytorch笔记

  • 特性
    pytorch的第一大特性是其能与numpy无缝对接转换
np_data = np.arange(6).reshape((2, 3)) #创建一个numpy数组
torch_data = torch.from_numpy(np_data) #将numpy转换为torch tensor
tensor2array = torch_data.numpy() #将torch tensor 转换为numpy

Variable 存放变化的值

import torch
from torch.autograd import Variable
tensor = torch.FloatTensor([[1,2],[3,4]])
variable = Variable(tensor, requires_grad=True) #requires_grad是参不参与误差反向传播, 要不要计算梯度
variable.data   #  将Variable转成tensor 形式
variable.data.numpy()  #  将Variable转成numpy形式
  • 常用函数
    torch.Tensor.view() 作用同numpy中的reshape,用来改变数组的结构
x = torch.randn(4, 4)
# torch.Size([4, 4])
z = x.view(-1, 8)  # the size -1 is inferred from other dimensions
z.size()
# torch.Size([2, 8])
  • 示例
    这个是简单的网络分类的代码,下面的博文对其进行了解析
    https://github.com/MorvanZhou/PyTorch-Tutorial/blob/master/tutorial-contents/302_classification.py
    net = Net(n_feature=2, n_hidden=10, n_output=2)调试的时候看到是在这步自动完成权重初始化的
    在调用交叉熵损失函数时,CrossEntropyLoss的默认输入时logit,out是没有被softmax激活output
loss_func = torch.nn.CrossEntropyLoss()
loss = loss_func(out, y) 

未完待续。。。


参考资料
  1. 关于pytorchGPU使用的讨论帖
  2. BCEWithLogitsLoss解释
    https://blog.csdn.net/qq_22210253/article/details/85222093
  3. pytorch官网 https://pytorch.org/tutorials/

你可能感兴趣的:(pytorch笔记)