【问题标题】:PyTorch NN does not learn or learns poorlyPyTorch NN 不学习或学习不佳
【发布时间】:2021-06-05 01:03:51
【问题描述】:

我正在使用 PyTorch 教程,稍作修改以使用 Titanic 数据集。我正在使用非常简单的带有 ReLU 的线性(密集)网络...我想根据年龄、票价和性别来预测生存状态。

我在使用简单的神经网络时遇到了一种奇怪的行为(我正在 Google Colab 上进行实验)。有时当我执行训练时,准确性根本不会改变。这很奇怪,因为我正在重新创建模型......

Accuracy: 59.4%, Avg loss: 0.693147
[...50 or more lines like this...]
Accuracy: 59.4%, Avg loss: 0.693147

有时准确率会从 60% 缓慢增加到 80%。

另一件事是,准确率非常低(从 60% 到 80% 不等),尽管事实上我正在使用...相同的训练集进行验证!

我尝试了几种不同的学习率、批量大小和时期数以及神经元数量的组合,但它仍然表现得非常...不可预测且很弱。 你能指出我为什么有时网络根本不学习吗?如果我重新运行它几次,它就会开始以某种方式学习。应该对这个网络做些什么来改进它?

这是我的 Python 笔记本: https://colab.research.google.com/drive/1-50BTqnMgiz_dozv1DjXS9advD1Rxd-B?usp=sharing

提前致谢!

【问题讨论】:

标签: python machine-learning neural-network pytorch


【解决方案1】:

由于这是一个分类问题,您的神经网络的最后一层不应有relu 激活函数。

代码片段:

class NeuralNetwork(nn.Module):
    def __init__(self):
        super(NeuralNetwork, self).__init__()
        self.fun = nn.Sequential(
            nn.Linear(3, 32),
            nn.ReLU(),
            nn.Linear(32, 1)
        )

    def forward(self, x):
        return self.fun(x)

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2021-01-06
    • 1970-01-01
    • 2019-05-17
    • 2015-02-24
    • 2020-11-16
    • 1970-01-01
    • 2020-05-05
    • 2021-01-20
    相关资源
    最近更新 更多