【问题标题】:Why i can't improve the performance of a CNN on the Fashion MNIST dataset?为什么我不能在 Fashion MNIST 数据集上提高 CNN 的性能?
【发布时间】:2019-08-11 13:49:46
【问题描述】:

我正在使用 Pytorch,并在 MNIST 数据集上实现了一个 CNN,该数据集在训练集和测试集上的准确率均超过 99%。

我决定切换到 Fashion MNIST 以了解我的网络架构的性能。我在训练集上获得了 95% 的准确率,在测试集上获得了 91% 的准确率。

然后,我开始尝试通过调整模型来提高性能。

简而言之,我的模型如下所示:

         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Conv -> ReLU -> Batch norm -> Max pool ->
         Linear -> ReLu -> Linear -> Output

         Optimizer: Stochastic Gradient Descent
         Transformations: ToTensor() only

我的测试是移除最后一个 Conv 层,在最后一个 Conv 层中添加平均池而不是最大池,检查训练损失曲线以静态或动态调整学习率并更改批量大小。

但是,使用上述组合时,我的模型要么会过拟合(例如 97% 训练,89% 测试),要么不会有最佳性能(例如 91% 训练,89% 测试)。

我错过了什么吗?难道我做错了什么?是否还有其他我没有想到的调整参数需要调整?

谢谢

【问题讨论】:

    标签: deep-learning computer-vision conv-neural-network pytorch


    【解决方案1】:

    时尚 MNIST 是一个比 MNIST 更难的问题。因此,您的架构表现不佳也就不足为奇了。

    如果你想获得更高的准确率,你可能想尝试this paper中描述的方法。

    【讨论】:

      【解决方案2】:

      您是否在您的神经网络上实现了 Dropout。 丢弃有助于将神经元的权重随机设置为零,因此 那个特定时间的神经元不会累加误差。并且避免过度拟合。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-30
        • 2015-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-16
        • 1970-01-01
        相关资源
        最近更新 更多