在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 27 Python
python实现远程控制电脑
May 23 Python
python用for循环求和的方法总结
Jul 08 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python pickle模块实现对象序列化
Nov 22 Python
Python csv文件记录流程代码解析
Jul 16 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
Python2与Python3关于字符串编码处理的差别总结
Sep 07 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
python 实现德洛内三角剖分的操作
Apr 22 Python
python实现双链表
May 25 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实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
用Python进行行为驱动开发的入门教程
2015/04/23 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
python urllib爬虫模块使用解析
2019/09/05 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
财务主管的岗位职责
2013/12/30 职场文书
市场开发与营销专业求职信
2013/12/31 职场文书
军训感想500字
2014/02/20 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
小学体育课教学反思
2016/02/16 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android