一. 标量,向量,矩阵,张量(tensor)的区别
张量:按照任意维排列的一堆数字的推广,标量,向量,矩阵都属于张量。
标量:0维的张量,如:0,1,2…
向量:1维的张量,如:(0,1,2,3)
矩阵:2维的张量,如:((1,2,3),(4,5,6),(7,8,9))
二. backward()函数参数的意义
1. tensor无法对tensor求导
若一个mxn的矩阵需要对于rxs的矩阵进行求导,则会得到一个mxnxrxs的矩阵,若需要对维度更高的tensor求导,结果的维度会更高,无法得到与输入相同大小的梯度。
因此pytorch不允许对一维及以上的张量求导,需要将需求导的张量转换为一个标量后,再进行求导。
2. 将带待求导的tensor转换为标量
#函数原型
torch.autograd.backward(tensors