浅浅记录一下深度学习的一个小实验:利用Pytorch对函数y=2x 关于列向量 求导。
因为这个函数求导还是挺简单的,首先我们可以稍微手动求一下,方便验算程序结果是否正确
,最后的结果就是4*x的初始值
首先自定义一个列向量
x = torch.tensor([[1.0], [2.0], [3.0]], requires_grad=True)
然后用pytorch的矩阵乘法函数torch.mm()写出公式
y = 2 * torch.mm(x.T,x)
最后调用反向传播函数,输出结果
y.backward()
print(x.grad)
完整代码
import torch
x = torch.tensor([[1.0], [2.0], [3.0]], requires_grad=True)
y = 2 * torch.mm(x.T,x)
y.backward()
print(x.grad)
结果,我们可以看到,就是4倍的x