首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在keras中使用predict_generator()时如何获得关联的图像名称

在keras中使用predict_generator()时如何获得关联的图像名称
EN

Stack Overflow用户
提问于 2018-04-22 20:20:49
回答 2查看 4.9K关注 0票数 3
代码语言:javascript
运行
AI代码解释
复制
test_batches = ImageDataGenerator(
    preprocessing_function=preprocess_input
).flow_from_directory(test_path,target_size=(224,224),batch_size=1,class_mode=None,shuffle = "false")
prediction = model.predict_generator(test_batches, steps=1, verbose=1)
np.argmax(prediction)

在这里,我使用step_size=1和steps=1测试了一个映像,每当我运行它时,我都会得到不同的预测,这意味着它不是每次都选择相同的图像。如何检查图像名称?

编辑:下面是解释我所面临的问题的另一个尝试:

代码语言:javascript
运行
AI代码解释
复制
test_batches = ImageDataGenerator(
    preprocessing_function=preprocess_input
).flow_from_directory(test_path,target_size=(224,224),batch_size=2,class_mode=None,shuffle = "false")
prediction = model.predict_generator(test_batches, steps=1, verbose=2)

预测变量有两个预测概率数组。我怎么知道这些预测是为了什么图像?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-23 00:58:28

  • 如果您的目标是熟悉keras ImageDataGenerators:

如果希望生成器始终返回相同的映像(为了可复制性):

代码语言:javascript
运行
AI代码解释
复制
from keras.preprocessing.image import ImageDataGenerator
import numpy as np

data_dir = 'path/to/image/directory'  # path to the directory where the images are stored
index = 0  # select a number here

ig = ImageDataGenerator()
gen = ig.flow_from_directory(data_dir, batch_size=1)  # if you want batch_size > 1 you need to
                                                      # add as many indices as your batch_size.
image, label = gen._get_batches_of_transformed_samples(np.array([index]))
image_name = gen.filenames[index]
# do whatever you want with your image and label

如果您希望生成器始终返回一个随机图像,但知道是哪个图像,我建议执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
index = next(gen.index_generator)
image, label = gen._get_batches_of_transformed_samples(index)
image_name = gen.filenames[index]
  • 但是,如果您想了解predict_generator是如何工作的,那么这些方法都不会对您有所帮助。我唯一能想到的就是编辑DirectoryIterator 代码

例如,您可以添加一行打印要传递的图像的名称。我建议在第1434行之后添加以下语句

代码语言:javascript
运行
AI代码解释
复制
print(fname)
票数 5
EN

Stack Overflow用户

发布于 2018-04-22 21:50:57

您可以使用generator.filename属性

代码语言:javascript
运行
AI代码解释
复制
image_name=test_batch.filenames[0]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49973379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档