这种问题肯定是有可能的。我建议从 cifar 10 卷积神经网络教程开始,并针对您的问题进行定制。
在以后的帖子中,您应该告诉我们您的培训进展情况。确保每隔几步(可能每 10-100 步)输出以下信息:
- 损失/成本函数输出,你应该看到你的损失随着时间的推移而减少。
- 当前批次训练数据的分类准确度
- 保留测试集上的分类准确性(如果您已经实施了测试集评估,您可能会实施第二个)
有很多很多很多事情都可能出错,从糟糕的学习率到出错的预处理步骤。神经网络很难调试,它们对错误非常有弹性,甚至很难知道你的代码中是否有错误。出于这个原因,请确保您正在可视化所有内容。
要遵循的另一个非常重要的步骤是完全按照将图像传递给 tensorflow 的方式保存图像。您将以矩阵形式拥有它们,您可以将该矩阵形式保存为图像。在将数据传递给 tensorflow之前立即执行此操作。确保您为网络提供了您期望它接收的内容。我无法告诉你我和我认识的其他人有多少次在不知不觉中将垃圾传递到网络中,假设最坏的情况并证明自己错了!
您的下一篇文章应如下所示:
- 我正在用 tensorflow 训练卷积神经网络
- 我的损失函数(sigmoid 交叉熵)一直在减少(给我们看一张图片!)
- 我的输入图像看起来像这样(向我们展示您实际馈送到网络的图片)
- 我的学习率和其他参数是 A、B 和 C
- 我通过执行 M 和 N 对数据进行了预处理
- 网络在训练数据(和/或测试数据)上达到的准确度是 Y
在回答这些问题的过程中,您可能会解决 10 个问题,我们将帮助您找到第 11 个,如果运气好的话,最后一个。:)
祝你好运!