首页 > 解决方案 > 如何计算神经网络输入的输出梯度?

问题描述

我想计算 (num1 * output1, num1 * output2) wrt num1 的偏导数。神经网络的输入是 (num1, 2, 3, 4)。输出的预期暗度为 2。有没有办法做到这一点?

number_of_inputs = 4
hidden_layer = 64
number_of_outputs = 2

class NeuralNetwork(nn.Module):

    def __init__(self):
        super(NeuralNetwork, self).__init__()
        self.linear1 = nn.Linear(number_of_inputs,hidden_layer)
        self.linear2 = nn.Linear(hidden_layer,number_of_outputs)

        self.activation = nn.Tanh()

    def forward(self, x):
        output = self.linear1(x)
        output = self.activation(output)
        output = self.linear2(output)

        return output

a = NeuralNetwork()

# a(input1, input2, input3, input4) -> (output1, output2)

num1 = torch.tensor(1, dtype=torch.float, requires_grad=True)
b = a(torch.tensor([num1, 2, 3, 4], dtype=torch.float, requires_grad=True))

标签: pythonpytorch

解决方案


推荐阅读