def backward(self, grad_output):
matrix1, matrix2 = self.saved_tensors
grad_add_matrix = grad_matrix1 = grad_matrix2 = None
if self.needs_input_grad[0]:
grad_add_matrix = grad_output
if self.alpha != 1:
grad_add_matrix = grad_add_matrix.mul(self.alpha)
if self.needs_input_grad[1]:
grad_matrix1 = torch.mm(grad_output, matrix2.t())
if self.beta != 1:
grad_matrix1 *= self.beta
if self.needs_input_grad[2]:
grad_matrix2 = torch.mm(matrix1.t(), grad_output)
if self.beta != 1:
grad_matrix2 *= self.beta
return grad_add_matrix, grad_matrix1, grad_matrix2
评论列表
文章目录