深度学习里面的矩阵计算


《动手学深度学习2》

深度学习里面的矩阵计算基本上是以梯度计算为核心,数组、矩阵、来至它们的扩展张量计算都有一些常见模式,pointwise 逐点或者叫做逐个元素计算,点积计算,矩阵积计算。

但是目的大多数时候是求拟合函数的导数,而整个导数组成的张量就叫做梯度

张量计算过程中要对向量的形状有明确的认知。

标量 和 列向量的梯度张量是一个行向量
列向量和一个标量的梯度张量是一个列向量
pytorch 对于梯度的计算,只会保留用户创建的张量,同时requires_grad是需要启用的。
另外如果想要保留那些非叶子节点的梯度计算结果,可以对loss加上retain_grad
同时对非叶子节点加上钩子register_hook对非叶子节点梯度显示控制。
然后再启用backward或者说是autograd.grad方法来进行计算