【问题标题】:Keras trained mode always predicts 0Keras 训练模式总是预测 0
【发布时间】:2018-07-29 22:47:27
【问题描述】:

我正在尝试使用带有 Tensorflow 后端的 keras 构建一个模型来预测图片中是否包含文本。

这是我的模特:

model = Sequential()

model.add(Conv2D(32, (3, 3), input_shape=(image_size, image_size, 3))) # 32?
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5)) # 0.5?

model.add(Conv2D(32, (3, 3))) # again, 32?
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5)) # again, 0.5?

model.add(Conv2D(64, (3, 3))) # again, 64?
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5)) # again, 0.5?

model.add(Flatten())
model.add(Dense(96))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1)) # binary
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

我尝试了 128、256、384 的图像尺寸。 我用 9000 张图像训练它,4500 张猫 1 和 4500 猫 2。 训练准确率高达 0.90。 但是当我加载模型并使用它来预测我没有训练过的两个类别的图像类别时,它总是给出0分。

任何想法为什么会发生这种情况?

附言cat 1 是带文字的图片,cat 2 是不带文字的图片。

这也是我测试模型的代码:

model = load_model(model_path)

test_data_generator = ImageDataGenerator(rescale=1. / 255)
test_generator = test_data_generator.flow_from_directory(
    test_data_dir,
    target_size=(image_size, image_size),
    batch_size=batch_size,
    class_mode=None,
    shuffle=False)

prediction = model.predict_generator(
    test_generator,
    use_multiprocessing=True,
    verbose=1)  # verbose=1 makes it show a progress bar.

dst = []
for pred in prediction:
    if int(round(pred)) == 0:
        dst += [0]
    else:
        dst += [1]

dst 都是 0。

【问题讨论】:

    标签: keras classification


    【解决方案1】:

    显然,问题在于我使用 keras 的生成器来提供我正在测试的图像,并使用 shutil 来迭代它们。所以我会得到预测并使用两种不同的东西迭代它们和目录中的文件,它们的顺序是不一样的。 shutil 会以某种随机顺序列出它们,而生成器会按名称升序列出它们。所以我没有在生成它的文件上贴标签。

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 2019-06-21
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多