用PyTorch中的GD求全局最小值

2024-04-26 17:38:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我用向量输入和标量输出(回归)训练了一个神经网络。 现在我想用带pytorch的GD求NN的全局最小值。你知道吗

一般来说,我不熟悉编程,具体来说是python,甚至更具体地说是pytorch。你知道吗

我相信我要做的事以前一定做过一千次,如果不是一万次的话。如果有人能给我指出某个地方的代码(可能是github中的代码),我会非常高兴和感激的,在那里有一个例子,说明我正在尝试做什么,我可以根据自己的需要进行调整。你知道吗


Tags: 代码github编程地方神经网络nnpytorch全局
1条回答
网友
1楼 · 发布于 2024-04-26 17:38:24

你做了你所做的训练你的网络,但不是更新权重,而是更新输入:

input = torch.zeros([1,3,32,32], requires_grad=True) # Whatever the expected input size of your network is
output = model(input)
target = 0.0 # What kind of target should your network reach?
loss = ((target - output) ** 2) # Replace this with the loss you are using
grad = torch.autograd.grad(loss, input)

您可以将梯度(可能乘以学习率)应用于输入,并多次重复此步骤。我从https://discuss.pytorch.org/t/gradient-of-loss-of-neural-network-with-respect-to-input/9482更新了这个

你应该注意这样一个事实,你的网络可能会产生一个非常嘈杂的“输入”,所以你应该考虑你的初始输入应该是什么。谷歌以前也做过类似的事情,比如https://www.networkworld.com/article/2974718/software/deep-dream-artificial-intelligence-meets-hallucinations.html

相关问题 更多 >