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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
详解Python中的多线程编程
Apr 09 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
Django 视图层(view)的使用
Nov 09 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python实现图片九宫格分割
Mar 07 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 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
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP实现百度人脸识别
2019/05/06 PHP
php扩展开发入门demo示例
2019/09/23 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
js实现动态时钟
2020/03/12 Javascript
Python实现最常见加密方式详解
2019/07/13 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
销售高级职员求职信
2013/10/29 职场文书
经典禁毒标语
2014/06/16 职场文书
工程承包协议书范本
2014/09/29 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android