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使用点操作符访问字典(dict)数据的方法
Mar 16 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
Python工厂函数用法实例分析
May 14 Python
Python实现的knn算法示例
Jun 14 Python
Selenium元素的常用操作方法分析
Aug 10 Python
对Python 简单串口收发GUI界面的实例详解
Jun 12 Python
Django 缓存配置Redis使用详解
Jul 23 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 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
多人战的战术与战略
2020/03/04 星际争霸
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
Symfony的安装和配置方法
2016/03/17 PHP
javascript屏蔽右键代码
2014/05/15 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
js实现录音上传功能
2019/11/22 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
Python如何定义接口和抽象类
2020/07/28 Python
会计自我鉴定范文
2013/10/06 职场文书
前台文员的岗位职责
2013/11/14 职场文书
土建资料员岗位职责
2014/01/04 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
食品安全检查制度
2014/02/03 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
行政办公室岗位职责
2014/03/18 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
python 调用js的四种方式
2021/04/11 Python
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技