在keras中对单一输入图像进行预测并返回预测结果操作


Posted in Python onJuly 09, 2020

模型经过训练测试之后,我们往往用一两张图对模型预测结果进行分析讨论,那么下面介绍在keras中用已训练的模型经过测试的方法。

下面是以利用预训练的ResNet来展示预测的效果,选了一张狗的图片,是来自一个kaggle比赛的。

预测结果第一个是一种苏格兰品种的狗,我也不知道准不准 == 。

在keras中对单一输入图像进行预测并返回预测结果操作

import numpy as np
from keras.applications.imagenet_utils import decode_predictions
from keras.preprocessing import image
from keras.applications import *
 
import os
 
# 忽略硬件加速的警告信息
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
file_path = 'images/0a70f64352edfef4c82c22015f0e3a20.jpg'
 
img = image.load_img(file_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
 
model = ResNet50(weights='imagenet')
y = model.predict(x)
# print(np.argmax(y))
print('Predicted:', decode_predictions(y, top=3)[0])

讲几点:

1.输入img转成numpy数组,shape处理成(224,224,3)一般来讲,对于预训练模型是有一个最小的尺寸值,比最小尺寸大就可以了。在ResNet中,尺寸最小大于等于197即可。

2.要对输入shape扩维变成(None,224,224,3),第一个None是batches,模型并不知道你输入的batches是多少,但是维度必须和ResNet的输入要一致。

3.虽然用的是ResNet,自己设计的模型也一个道理,保留一下训练的权重,把model模块和预测模块分开写,这个时候load一下权重,再预测即可。

补充知识:keras:怎样使用 fit_generator 来训练多个不同类型的输出

这个例子非常简单明了,模型由1个输入,2个输出,两个输出的分支分别使用MSE作为损失。

x = Convolution2D(8, 5, 5, subsample=(1, 1))(image_input)
x = Activation('relu')(x)
x = Flatten()(x)
x = Dense(50, W_regularizer=l2(0.0001))(x)
x = Activation('relu')(x)

output1 = Dense(1, activation='linear', name='output1')(x)
output2 = Dense(1, activation='linear', name='output2')(x)

model = Model(input=image_input, output=[output1, output2])
model.compile(optimizer='adam', loss={'output1': 'mean_squared_error', 'output2': 'mean_squared_error'})

产生训练数据的生成器,这里y=[y1,y2].

batch_generator(x, y, batch_size):
  ....transform images
  ....generate batch batch of size: batch_size 
  yield(X_batch, {'output1': y1, 'output2': y2} ))

之后,调用fit_generator

model.fit_generator(batch_generator(X_train, y_train, batch_size))

原问题链接。

以上这篇在keras中对单一输入图像进行预测并返回预测结果操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
在Django的上下文中设置变量的方法
Jul 20 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
django 消息框架 message使用详解
Jul 22 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
Apr 16 Python
Python yield生成器和return对比代码实例
Apr 20 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
Python torch.flatten()函数案例详解
Aug 30 Python
python求解汉诺塔游戏
Jul 09 #Python
Django中Aggregation聚合的基本使用方法
Jul 09 #Python
Python  word实现读取及导出代码解析
Jul 09 #Python
推荐技术人员一款Python开源库(造数据神器)
Jul 08 #Python
实例讲解Python 迭代器与生成器
Jul 08 #Python
opencv 阈值分割的具体使用
Jul 08 #Python
如何表示python中的相对路径
Jul 08 #Python
You might like
PHP5中MVC结构学习
2006/10/09 PHP
提问的智慧
2006/10/09 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
原生js实现轮播图
2017/02/27 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python入门篇之字符串
2014/10/17 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python如何统计代码运行的时长
2019/07/24 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
python如何控制进程或者线程的个数
2020/10/16 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
施工材料员岗位职责
2014/02/12 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
班级活动总结格式
2014/08/30 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
浅谈redis缓存在项目中的使用
2021/05/20 Redis