【发布时间】: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