python - 如何快速验证 CNN 是否真正学习?

标签 python machine-learning conv-neural-network training-data backpropagation

我尝试从这个article基于LeNet架构从头开始构建CNN。

我实现了背景,现在尝试使用 16 个批量大小的 SGD 在 MNIST 数据集上对其进行训练。我想找到一种快速的方法来验证学习是否顺利并且没有bug。为此,我将每 100 个批处理的损失可视化,但在我的笔记本电脑上花费的时间太长,而且我看不到整体动态(损失向下波动,但偶尔会跳回来,所以我不确定)。谁能提出一种行之有效的方法来发现 CNN 运行良好,而无需等待多个小时的训练?

最佳答案

MNIST 由 60k 个 28 * 28 像素的数据集组成。训练批量大小为 16 的 CNN 将在每个 epoch 进行 4000 次前向传递。 现在考虑到您使用的是 LeNet,它不是一个非常深入的模型。 我建议您执行以下操作:

  1. 检查您的电脑规范,例如 RAM、处理器、GPU 等。
  2. 尝试在 Google Colab、Kaggle 等云服务上训练您的模型
  3. 尝试使用 128 或 64 的批量大小
  4. 在训练前尝试标准化图像数据集

训练速度还取决于您使用的机器学习框架,例如 Tensorflow、Pytorch 等。 我希望这会有所帮助。

关于python - 如何快速验证 CNN 是否真正学习?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59810367/

相关文章:

machine-learning - 关于将卷积层实现为全连接层的困惑

python - 卷积神经网络中的 Flatten() 层和 Dense() 层有什么区别?

python - 将返回的字符串转换为字典?

Python3子进程输出

machine-learning - 全局池操作的池大小是多少?

machine-learning - 用于大量重复输入的神经网络

python - 如何使用 KFold 交叉验证输出作为 CNN 输入进行图像处理?

python - 在 NumPy 中创建填充矩形的最有效方法

python - 如何在 Python3 中使用 pylab 去除 x 轴标签中的困惑/重叠?

python - Numpy - 归一化 RGB 图像数据集