python - 如何计算神经网络输入的输出梯度?
问题描述
我想计算 (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))
解决方案
推荐阅读
- java - 如何告诉 JAX-WS 根据请求转义撇号?
- google-apps-script - 如果块从不执行
- java - Hadoop 作业返回异常“classNotFound”
- react-native - 在带有 React Native 的图像地址上使用 useState 时出错
- machine-learning - 如何使用深度学习模型预测图匹配的邻接矩阵
- python - 将外键从一个数据帧附加到另一个数据帧的最快方法
- r - 仅对最后一个值插入 NA
- javascript - 如何在 Angular 中处理 LocaleDateTime 后端响应
- c - Firebird C Api 执行 Unicode Sql 语句
- internet-explorer-9 - Recaptcha 与 IE9 不兼容?