Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 手动计算的渐变与自动栅格不匹配_Matrix_Computer Vision_Pytorch_Gradient_Backpropagation - Fatal编程技术网

Matrix 手动计算的渐变与自动栅格不匹配

Matrix 手动计算的渐变与自动栅格不匹配,matrix,computer-vision,pytorch,gradient,backpropagation,Matrix,Computer Vision,Pytorch,Gradient,Backpropagation,我试图计算一个函数的梯度,在PyTorch中它是a*a*X*W0*W1 w.r.ta。 我已经手动计算了梯度,但是我没有得到与pytorch的自动梯度函数相同的答案。有人能帮我解决我做错的事吗 手动计算的功能是 def torch_grad(A, W0, W1, X): # Forward W0W1 = torch.mm(W0, W1) AX = torch.mm(A, X) AXW0W1 = torch.mm(AX, W0W1) AAXW0W1 = torch.mm(A,

我试图计算一个函数的梯度,在PyTorch中它是
a*a*X*W0*W1 w.r.ta
。 我已经手动计算了梯度,但是我没有得到与pytorch的自动梯度函数相同的答案。有人能帮我解决我做错的事吗

手动计算的功能是

def torch_grad(A, W0, W1, X):
  # Forward
  W0W1 = torch.mm(W0, W1)
  AX = torch.mm(A, X)
  AXW0W1 = torch.mm(AX, W0W1)
  AAXW0W1 = torch.mm(A, AXW0W1)

  # Backward / Gradients
  rows, cols = AAXW0W1.size()
  grad_AX = torch.mm(torch.eye(rows, cols), W0W1.t())
  grad_AA = torch.mm(grad_AX, X.t())
  grad_A = torch.mm(grad_AA, (2*A).t())
  return grad_A
谢谢