想知道pyTorch里面的backward()函数是怎么根据loss的数值来计算梯度的,因为之前高数里面计算梯度都是特定点计算出梯度公式代入点坐标得到的,在多维的情况下如何根据函数值来得到梯度,求指教。
在PyTorch中,当调用backward()函数求解梯度时,需要传入grad_tensors参数,以根据损失函数对权重矩阵进行计算。如果是标量对向量求导,则无需提供grad_tensors参数;否则,需要提供参数并确保其与该张量的形状相同。在传入grad_tensors参数后,PyTorch将通过Jacobian矩阵的元素梯度值进行求解,将此矩阵与grad_tensors参数相乘,并返回最终的结果。如果输入的参数不合适,则会报错。