DL之CNN优化技术:学习卷积神经网络CNN的优化、实践经验(练习调参)、从代码深刻认知CNN架构之练习技巧

DL之CNN优化技术:学习卷积神经网络CNN的优化、调参实践、从代码深刻认知CNN架构之练习技巧


卷积神经网络CNN调参学习实践

DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Functional)利用MNIST(手写数字图片识别)数据集实现多分类预测
DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测

练习技巧

1、练习攻略一

  1. 训练更多的epochs,看看这会不会提升分类的准确率?
  2. 尝试把一些层的把激活函数,改成sigmoid。
  3. 你能找到一种简单的方法来改变所有层的激活函数吗?
  4. 画出最大池化层的输出,来替代卷积层的输出。
  5. 在卷积层中用stride=2的卷积来替代2X2 max-pooling,分类精度有差异吗?如果你一次又一次地优化它呢?差异是任意变化的,你又要如何去衡量这个差异?在卷积层中用max-pooling比较stride有什么优缺点?
  6. 改变层的参数,如内核、深度、大小等。使用的实践和分类精度有什么差异?
  7. 增加或移除一些卷积层或全连接层。
  8. 你能在保持结果好的同时设计出更简单的网络吗?
  9. 修改函数式模型,增加另一个卷积层与全连接层之前的卷积层相连。
  10. 修改函数式模型,让它同时输出预测类别的独热编码数组和整数形式的结果,这样我们之后就不需要再使用numpy.argmax()。
  11. 不看源码,自己重写程序。
  12. 向朋友解释程序是如何工作的。

2、VGG16练习攻略二

  • 尝试使用VGG16模型的其它层来作为传输层。它如何影响训练和分类的准确性?
  • 改变我们添加的新的分类层。你能通过增加或减少全连接层的节点数量来提高分类精度吗?
  • 如果你在新的分类器中移除随机失活层会发生什么?
  • 改变迁移学习和微调时的学习率。
  • 尝试微调整个VGG16模型。它如何影响训练和测试集的分类精度?为什么?
  • 试着从一开始就进行微调,这样新的分类层就会和VGG16模型的所有卷积层一起开始训练。您可能需要降低优化器的学习速度。
  • 给测试集和训练集添加一些图像。这样能使性能提升吗?
  • 尝试删除一些刀和汤匙的图像,使所有类别的图像数目相等。这是否改善了混淆矩阵中的数字?
  • Use another dataset.
  • 使用另一个数据集。
  • 使用Keras中另一个预训练模型。
  • 向朋友解释程序如何工作。
(0)

相关推荐