Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在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

复制
相关文章
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.7K0
iOS开发中在指定的某些线程执行完之后去执行其他线程
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/79139208
用户1451823
2018/09/13
1.2K0
iOS开发中在指定的某些线程执行完之后去执行其他线程
【漫画】finally到底是在return之前执行还是return之后执行?
比如说上面所示的代码,在try语句里面 i / 0 的话会抛出来异常,这样的话程序就在i / 0这里由于抛出了异常,所以程序不会继续往下去执行try包含的语句了。首先进入到catch语句里面,由于finally语句一定会执行,接下来就会执行finally中的语句,所以就得到了上面的执行结果。
乔戈里
2019/01/23
7320
Oracle——无法在查询中执行 DML 操作
create or replace function test_f(id varchar2) return varchar2 is Result varchar2(100); begin insert into sfcs_temp_17109 (sn)values(id);
_一级菜鸟
2019/09/10
4.5K0
Oracle——无法在查询中执行 DML 操作
vue/uniapp 如何让页面的 onLoad 在 onLaunch 之后执行[通俗易懂]
app.vue里的 onLaunch 中如果有异步方法(比如:登录),返回结果可能会在页面的 onLoad 之后,但 onLoad 中的方法需要登录回调的结果。
全栈程序员站长
2022/07/30
3.2K0
compareTo()方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158435.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
3550
关于compareTo使用的几种情况
String source = "A"; String tager = "B"; int i = source.compareTo(tager); System.out.println(i); //输入为 -1 String source = "B"; String tager = "B"; int i = source.compareTo(tager); System.out.println(i); //输出为 0 String source =
信铁寒胜
2020/07/31
5090
ReactDOM.render在react中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2022/12/08
7590
Java 堆栈信息对象 StackTraceElement,获取当前线程的执行方法
java.langStackTraceElement类保存了Java中线程中的方法栈信息:
青山师
2023/05/05
6670
Java finally 语句到底是在 return 之前还是之后执行?
今天跟大家分享下Java finally语句的知识。finally隐藏了这样的细节?
互扯程序
2019/11/01
1.2K0
python程序执行时间_用于在Python中查找程序执行时间的程序
The execution time of a program is defined as the time spent by the system to execute the task. As we all know any program takes some execution time but we don't know how much. So, don't worry, in this tutorial we will learn it by using the datetime module and also we will see the execution time for finding the factorial of a large number. A large number will be provided by the user and we have to calculate the factorial of a number, also we have to find the execution time of the factorial program. Before going to write the Python program, we will try to understand the algorithm.
用户7886150
2021/01/28
2.1K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
bear_fish
2018/09/20
1.3K0
小程序在父组件执行子组件方法,可适用于下拉刷新上拉加载之后执行子组件方法
当父组件引用了子组件的时候,会遇到父组件执行子组件的方法,比如下拉刷新上拉加载等事件只有在页面中才能检测到,但是获取数据的方法在子组件,这时就可以执行子组件方法。
蓓蕾心晴
2018/08/15
1.1K0
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?
挨踢小子部落阁
2019/08/05
8490
glut库更新旧程序无法完成编译问题描述
zhangrelay@LAPTOP-5REQ7K1L:~$ cd cppcode/Bouncing-Ball-Animation-master/src/
zhangrelay
2022/08/10
1.1K0
glut库更新旧程序无法完成编译问题描述
ReactDOM.render在react源码中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2022/09/30
5960
Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try…catch…finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:
乔戈里
2019/10/28
8080
ReactDOM.render在react源码中执行之后发生了什么?
通常是如下图使用,在提供的 container 里渲染一个 React 元素,并返回对该组件的引用(或者针对无状态组件返回 null)。本文主要是将ReactDOM.render的执行流程在后续文章中会对创建更新的细节进行分析,文中的源代码部分为了方便阅读将__DEV__部分的代码移除掉了。
flyzz177
2023/01/06
5920
Class 对象在执行引擎中的初始化过程
装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。
老马的编程之旅
2022/06/22
1.1K0
Class 对象在执行引擎中的初始化过程
Java中的compareTo方法详解
在Java编程中,有时候我们需要对对象进行比较和排序。为了实现这一目标,Java提供了一个非常有用的接口叫做Comparable,以及一个重要的方法compareTo。本文将详细解释什么是Comparable接口,以及如何使用compareTo方法来比较对象。
修己xj
2023/09/13
4700

相似问题

在表单验证之后执行功能

14

重写compareTo()方法的功能

35

在SIGTRAP之后,无法单步执行gdb中的程序

19

在CREATE INDEX之后更新统计信息?

05

在使用电子邮件执行signIn之后,无法使用firebase获取更新的配置文件信息

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档