Pytorch

常见的使用方法

tesor和numpy之间的转化

  1. a = torch.ones(5)
  2. b = a.numpy()
  3. a = np.ones(5)
  4. b = torch.from_numpy(a)

广播机制,就是不同形状的矩阵被复制变大为一样大的矩阵再进行运算

梯度求解相关:结果的梯度值是取决于输入变量运算结果变量的“requires_grad”值是取决于输入的变量的,例如变量b:其是由a和z计算得到的,如果a或者z需要计算关于自己的梯度(requires_grad=True),因为梯度要反向传播,那么b的“requires_grad”就是True;如果a和z的“requires_grad”都是False那么,b的也是False。而且运算结果变量的“requires_grad”是不可以更改的,且不会改变。用户创建变量的“requires_grad”是可以更改的。

关于pytorch的梯度计算,可以考虑看作是一个巨大的计算图,上面有每一个节点,节点里面有数据,还有是否求解梯度,还有计算出的梯度以及计算梯度函数。然后在改变一些数值或者是完成了计算图之后,使用梯度的反向传播进行计算,所以计算变量的是否求解梯度的属性是由表达式里面的变量决定的。还有张量标量和向量的问题,看的不太懂,暂时跳过

PS:pytorch的一些基本的用法函数https://blog.csdn.net/sinat_40624829/article/details/91127373