下面是我用于训练前馈神经网络 (FFNN) 的代码。
标签是介于 0 和 50 之间的数字。FFNN由具有50个神经元的单个隐藏层和具有51个神经元的输出层组成。此外,我还使用了负对数似然损失。
我对PyTorch很陌生,所以我使用几个网站作为指导。奇怪的是,它们都不需要retain_graph设置为 True(它们在调用时不会传递任何参数)。此外,它运行得非常慢,精度似乎在固定值附近波动,而不是降低。backward()
假设输入的格式是正确的,有人可以向我解释为什么网络表现如此糟糕,以及为什么网络需要将retain_graph设置为True?
谢谢!
n_epochs = 2
batch_size = 100
for epoch in range(n_epochs):
permutation = torch.randperm(training_set.size()[0])
for i in range(0, training_set.size()[0], batch_size):
opt.zero_grad()
indices = permutation[i:i + batch_size]
batch_features = training_set[indices]
batch_labels = torch.LongTensor([label for label, sent in train[indices]])
batch_outputs = model(batch_features)
loss = loss_function(batch_outputs, batch_labels)
loss.backward(retain_graph=True)
opt.step()
江户川乱折腾
相关分类