代码如下。
问题是,这optimizer.step()部分不起作用。我model.parameters()在训练前后打印,权重不变。
我正在尝试制作一个可以解决 AND 问题的感知器。我已经用我自己的小库成功地做到了这一点,我在其中实现了一个具有两个函数的感知器predict()和train().
澄清一下,我刚刚开始使用 PyTorch 学习深度学习,所以这可能是一个非常新手的问题。我试过寻找解决方案,但没有运气。我还将我的代码与其他有效的代码进行了比较,但我不知道我做错了什么。
import torch
from torch import nn, optim
from random import randint
class NeuralNet(nn.Module):
def __init__(self):
super(NeuralNet, self).__init__()
self.layer1 = nn.Linear(2, 1)
def forward(self, input):
out = input
out = self.layer1(out)
out = torch.sign(out)
out = torch.clamp(out, 0, 1) # 0=false, 1=true
return out
data = torch.Tensor([[0, 0], [0, 1], [1, 0], [1, 1]])
target = torch.Tensor([0, 0, 0, 1])
model = NeuralNet()
epochs = …Run Code Online (Sandbox Code Playgroud)