Tensorflow模型实现预测或识别单张图片


Posted in Python onJuly 19, 2019

利用Tensorflow训练好的模型,图片进行预测和识别,并输出相应的标签和预测概率。

如果想要多张图片,可以进行批次加载和预测,这里仅用单张图片进行演示。

模型文件:

Tensorflow模型实现预测或识别单张图片

预测图片:

Tensorflow模型实现预测或识别单张图片

这里直接贴代码,都有注释,应该很好理解

import tensorflow as tf
import inference
 
image_size = 128 # 输入层图片大小
 
# 模型保存的路径和文件名
MODEL_SAVE_PATH = "model/"
MODEL_NAME = "model.ckpt"
 
# 加载需要预测的图片
image_data = tf.gfile.FastGFile("./data/test/d.png", 'rb').read()
 
# 将图片格式转换成我们所需要的矩阵格式,第二个参数为1,代表1维
decode_image = tf.image.decode_png(image_data, 1)
 
# 再把数据格式转换成能运算的float32
decode_image = tf.image.convert_image_dtype(decode_image, tf.float32)
 
# 转换成指定的输入格式形状
image = tf.reshape(decode_image, [-1, image_size, image_size, 1])
 
# 定义预测结果为logit值最大的分类,这里是前向传播算法,也就是卷积层、池化层、全连接层那部分
test_logit = inference.inference(image, train=False, regularizer=None)
 
# 利用softmax来获取概率
probabilities = tf.nn.softmax(test_logit)
 
# 获取最大概率的标签位置
correct_prediction = tf.argmax(test_logit, 1)
 
# 定义Savar类
saver = tf.train.Saver()
 
with tf.Session() as sess:
  sess.run((tf.global_variables_initializer(), tf.local_variables_initializer()))
 
  # 加载检查点状态,这里会获取最新训练好的模型
  ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH)
  if ckpt and ckpt.model_checkpoint_path:
    # 加载模型和训练好的参数
    saver.restore(sess, ckpt.model_checkpoint_path)
    print("加载模型成功:" + ckpt.model_checkpoint_path)
 
    # 通过文件名得到模型保存时迭代的轮数.格式:model.ckpt-6000.data-00000-of-00001
    global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]
 
    # 获取预测结果
    probabilities, label = sess.run([probabilities, correct_prediction])
 
    # 获取此标签的概率
    probability = probabilities[0][label]
 
    print("After %s training step(s),validation label = %d, has %g probability" % (global_step, label, probability))
  else:
    print("模型加载失败!" + ckpt.model_checkpoint_path)

运行输出结果:

Tensorflow模型实现预测或识别单张图片

(标签为3,概率为0.984478)

标签字典:

Tensorflow模型实现预测或识别单张图片

3对应小写d,识别正确。

其他的图片的预测结果:

预测图片1:

Tensorflow模型实现预测或识别单张图片

Tensorflow模型实现预测或识别单张图片

标签字典:

Tensorflow模型实现预测或识别单张图片

图片1,识别结果为1,可能概率0.993034

识别结果还是挺好看的,不知道是不是过拟合了,还是迭代次数不够多,还需要调整调整。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python安装第三方库的3种方法
Jun 21 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
numpy中实现二维数组按照某列、某行排序的方法
Apr 04 Python
PyCharm配置mongo插件的方法
Nov 30 Python
python实现图书借阅系统
Feb 20 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
Django 实现图片上传和显示过程详解
Jul 18 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
python中altair可视化库实例用法
Jan 26 Python
python缺失值填充方法示例代码
Dec 24 Python
python django下载大的csv文件实现方法分析
Jul 19 #Python
python使用flask与js进行前后台交互的例子
Jul 19 #Python
Django 模型类(models.py)的定义详解
Jul 19 #Python
Tensorflow实现神经网络拟合线性回归
Jul 19 #Python
使用TensorFlow实现简单线性回归模型
Jul 19 #Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 #Python
简单了解django缓存方式及配置
Jul 19 #Python
You might like
编写Smarty插件在模板中直接加载数据的详细介绍
2013/06/26 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
Javascript延迟执行实现方法(setTimeout)
2010/12/30 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python基础 range的用法解析
2019/08/23 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
初中生学习的自我评价
2013/11/14 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
关于倡议书的范文
2015/04/29 职场文书
2015中学教学工作总结
2015/07/22 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
HAM-2000摩机图
2021/04/22 无线电
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python