我已经用非常好的val_accuracy训练了一个模型,但是预测是完全错误的。不幸的是,对类似问题的回答并没有帮助我。我的网络有一个多标签问题。最终结果是预测相册中每张照片的3个最佳标签。
这是我的功能,它可以根据预测结果进行输出。
def recognition(path):
class = np.array(classes)
for picture in os.listdir(path):
pic = os.path.join(path, picture)
pic = image.load_img(pic, size)
pic = image.img_to_array(pic)
pic = pic/255
这是我的CNN:
model = models.Sequential()
model.add(pretrained)
model.add(layers.Dropout(0.3))
model.add(layers.Flatten())
model.add(layers.Dropout(0.3))
model.add(layers.Dense(256, activation = 'relu'))
model.add(layers.Dropout(0.3))
model.add(layers.Dense(7, activation = 'sigmoid'))
val_acc为0.9527。
答案 0 :(得分:1)
对于多标签问题,我认为准确性不是一个好的指标。尝试精确度和召回率。 Keras Functional model giving high validation accuracy but incorrect prediction此讨论可能对您有用。
答案 1 :(得分:0)
我认为乙状结肠没有任何问题(前提是这是一个多标签任务)。我建议您查看您的数据,尝试了解正在发生的事情。也许您的数据集与现实世界的数据完全不同(请看协变量平移)。只要确保您没有将任何信息泄漏到验证集中即可。如果问题与数据相关,则没有简便的方法可以调试正在发生的情况。