在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中尝试多线程编程的一个简明例子
Apr 07 Python
Python单元测试框架unittest使用方法讲解
Apr 13 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
详解anaconda安装步骤
Nov 23 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引用符&的用法详细解析
2013/08/22 PHP
php实现的CSS更新类实例
2014/09/22 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
PHP之header函数详解
2021/03/02 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
python opencv实现图片旋转矩形分割
2018/07/26 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
自荐书范文
2013/12/08 职场文书
上班离岗检讨书
2014/01/27 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
作文评语集锦大全
2014/04/23 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
见习期个人总结
2015/03/05 职场文书
2019入党申请书格式
2019/06/25 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python