我的keras模型给我图像时会随机预测

时间:2019-08-10 20:40:47

标签: python machine-learning keras

我正在建立一个模型来对图像进行分类,当我使用model.predict给它提供图像时,它会为我提供随机输出。 model.evaluate_generator给我的精度为0.9530581049962875,损失为0.2506975952616229。图片为64x64,带有三个通道

我尝试使用其他数据集,但得到的结果相同。

我想知道我的模型架构是否有问题。

inotifyFd

编辑:我的训练代码和用于预测的代码

proc(5)

1 个答案:

答案 0 :(得分:0)

我想到的一些建议是:

  • 尝试尽可能减少MaxPooling层的数量。如您所见,最温和的最大池(2, 2)会删除75%的数据!

  • 降低辍学率。如果您的节点的一半在每次培训迭代时都关闭,则使他们学习东西有些困难(我知道有人会不同意,这是基于我的机器学习经验的我个人的看法)。我通常将其设置在0.1-0.25范围内。

  • 通常,您不需要所有这些过滤器。 CNN通常从初始层的过滤器数量较少开始,并随层数的增加而增加。这样,您只需从嘈杂的像素数据中提取相关信息,然后让网络细化更复杂的表示形式。我通常从32开始,然后再升至64、128。请考虑这是我个人的经验法则(它总是返回好的结果,但是其他体系结构也可能很棒)。

除此之外,您可以尝试经典的正则化技术,例如:L1-L2正则化或不同的权重初始化。

另外,请分享培训代码。问题可能出在这里,而不是模型的体系结构中。