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函数参数的区别(必看篇)
May 29 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
Python中asyncio模块的深入讲解
Jun 10 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
python 标准差计算的实现(std)
Jul 29 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
Python实现8种常用抽样方法
Jun 27 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
递归列出所有文件和目录
2006/10/09 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
Smarty模板语法详解
2019/07/20 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
vue实现模态框的通用写法推荐
2018/02/26 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
python中文乱码的解决方法
2013/11/04 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
python实现内存监控系统
2021/03/07 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Pytorch之Variable的用法
2019/12/31 Python
python画环形图的方法
2020/03/25 Python
python中turtle库的简单使用教程
2020/11/11 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
民族团结先进个人事迹材料
2014/06/02 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
党员年度个人总结
2015/02/14 职场文书
大学生自荐信范文
2015/03/05 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
三八妇女节致辞
2015/07/31 职场文书
《平移和旋转》教学反思
2016/02/19 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
MySQL开启事务的方式
2021/06/26 MySQL