torch.arange(x) #生成从1到x的张量 x.shape #返回x的形状 x.numel #返回x内元素的个数 x.reshape(m,n) #返回改变形状后的x,m为行数,n为列数 torch.tensor() #将Python列表改变为张量。 torch.cat((x,y),dim=) #张量连结,0为按行连结,1为按列连结。2.pytorch关于导数的操作
#pytorch自动求导的一般方法 x.requires_grad_(True) #存储x的梯度 x.grad #默认值为None y=torch.dot(x,x) #此时可以通过调用反向传播函数自动计算y关于x每个分量的梯度 y.backward() #此时导数将存储在x.grad里面 x.grad #pytorch关于导数方面的操作 x.grad.zero_() #将x内的导数进行清零
注:一般而言,在深度学习中很少会出现y为向量或为矩阵的情况,当出现y为向量或矩阵的情况下,需要对y做一次求和,然后再求导。
y.sum().backward() x.grad2.1 将计算移动到记录的计算图之外
x.gard_zero_() y=x*x u=y.detach() #此处u不在是关于x的函数,而只是y的数值结果 z=u*x
注:并不理解此处的计算移动有何使用价值,等后续学到相关位置后再进行补充。
2.2 对自定义函数求解梯度a=torch.randn(size=(),requires_grad=True) #此处生成的a为随机数 d=f(a) #f为我们自定义的函数 d.backward()



