【发布时间】:2020-05-12 10:21:39
【问题描述】:
我正试图弄清楚函数 grad 的工作原理。
这是我的代码:
A = torch.Tensor(2, 3).uniform_(-1, 1).requires_grad_()
B = torch.Tensor(3, 1).uniform_(-1, 1).requires_grad_()
o = torch.matmul(A,B)
print("A : ", A)
print("B : ", B)
do_dinput = torch.autograd.grad(o, A, grad_outputs=torch.ones(2, 1))
print('Size do/dA :', (do_dinput[0].size()))
我期待torch.Size([1, 3]) 被打印出来,因为AB w.r.t A 的导数是B^T。但是,我得到了torch.Size([2, 3])。
我的代码有问题,还是我遗漏了什么?
【问题讨论】: