在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 相关文章推荐
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
python中时间模块的基本使用教程
May 14 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 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
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
php实现word转html的方法
2016/01/22 PHP
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
js 窗口抖动示例
2013/09/04 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
兼职业务员岗位职责
2014/01/01 职场文书
酒店中秋节活动方案
2014/01/31 职场文书
超市总经理岗位职责
2014/02/02 职场文书
仓库主管岗位职责
2014/03/02 职场文书
贪污检举信范文
2015/03/02 职场文书
开学第一周总结
2015/07/16 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL