【问题标题】:How to return true labels of items when using predict_generator?使用 predict_generator 时如何返回项目的真实标签?
【发布时间】:2017-12-11 17:34:37
【问题描述】:

我正在使用predict_generator() 函数观察我的神经网络的输出,但我无法看到预测项目的真实标签。如何实现一个块来查看输入项的真实标签?

test_datagen = ImageDataGenerator(
rescale=1./255,
rotation_range=45,
width_shift_range=0.25,
height_shift_range=0.25,
horizontal_flip=True,
)
test_generator = test_datagen.flow_from_directory(
    evaluate_path,
    target_size=(width, height),
    batch_size=batch_size,
    class_mode='categorical')

model.compile(optimizer=SGD(lr=0.0001, momentum=0.9),      loss='categorical_crossentropy', metrics=['accuracy'])
x = model.predict_generator(test_generator, val_samples=1)
print(x)

【问题讨论】:

  • predict_generator() 返回一个包含所有预测的 numpy 数组。您能否提供您的代码并在您遇到问题时提供更多详细信息?
  • 我想同时看到预测和真实标签
  • 他们想知道如何“产生生成器的结果”,基本上。
  • 你错过了test_generator的定义。

标签: python-3.x machine-learning neural-network deep-learning keras


【解决方案1】:

试试下面的功能:

from six import next

def generator_with_true_classes(model, generator):
    while True:
        x, y = next(generator)
        yield x, model.predict(x), y

它将产生原始数据,y_predy_true。使用方式如下:

nb_of_samples = 0
nb_of_samples_to_compute = 100 # set your own value
for x, y_pred, y_true in generator_with_true_classes(model, test_generator):
    # do something with data, eg. print it.
    nb_of_samples += 1
    if nb_of_samples == nb_of_samples_to_compute:
         break

【讨论】:

  • 是输出
  • ValueError: 无法为形状为“(?, 250, 250, 3)”的张量“input_1:0”提供形状 () 的值
  • 您确定您的发电机工作正常吗?它找到了多少张图片?
  • 找到 326 张图片属于 2 个类别。
  • 很奇怪 - 但现在就试试吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-20
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 2017-06-01
  • 1970-01-01
相关资源
最近更新 更多