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函数嵌套实例
Sep 23 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python的链表基础知识点
Sep 13 Python
Python绘画好看的星空图
Mar 17 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 引用是个坏习惯
2010/03/12 PHP
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
JS实现多选框的操作
2020/06/24 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
python分割文件的常用方法
2014/11/01 Python
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
Python探索之SocketServer详解
2017/10/28 Python
python距离测量的方法
2018/03/06 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Python函数式编程实例详解
2020/01/17 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Python分类测试代码实例汇总
2020/07/23 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
2014年教师节寄语
2014/04/03 职场文书
学生期末评语大全
2014/04/30 职场文书
小数乘法教学反思
2016/02/22 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
Java tomcat手动配置servlet详解
2021/11/27 Java/Android