我正在建立一个模型来对图像进行分类,当我使用model.predict给它提供图像时,它会为我提供随机输出。 model.evaluate_generator给我的精度为0.9530581049962875,损失为0.2506975952616229。图片为64x64,带有三个通道
我尝试使用其他数据集,但得到的结果相同。
我想知道我的模型架构是否有问题。
inotifyFd
编辑:我的训练代码和用于预测的代码
proc(5)
答案 0 :(得分:0)
我想到的一些建议是:
尝试尽可能减少MaxPooling
层的数量。如您所见,最温和的最大池(2, 2)
会删除75%的数据!
降低辍学率。如果您的节点的一半在每次培训迭代时都关闭,则使他们学习东西有些困难(我知道有人会不同意,这是基于我的机器学习经验的我个人的看法)。我通常将其设置在0.1-0.25范围内。
通常,您不需要所有这些过滤器。 CNN通常从初始层的过滤器数量较少开始,并随层数的增加而增加。这样,您只需从嘈杂的像素数据中提取相关信息,然后让网络细化更复杂的表示形式。我通常从32开始,然后再升至64、128。请考虑这是我个人的经验法则(它总是返回好的结果,但是其他体系结构也可能很棒)。
除此之外,您可以尝试经典的正则化技术,例如:L1-L2正则化或不同的权重初始化。
另外,请分享培训代码。问题可能出在这里,而不是模型的体系结构中。