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中的map、reduce和filter浅析
Apr 26 Python
Python中__call__用法实例
Aug 29 Python
Django自定义分页与bootstrap分页结合
Feb 22 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
浅析python redis的连接及相关操作
Nov 07 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
如何将 awk 脚本移植到 Python
Dec 09 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
python Canny边缘检测算法的实现
Apr 24 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
基于Python实现流星雨效果的绘制
Mar 18 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站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
php二分查找二种实现示例
2014/03/12 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
php 浮点数比较方法详解
2017/05/05 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
Python FFT合成波形的实例
2019/12/04 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
服装厂厂长职责
2013/12/16 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
服务质量承诺书
2014/03/27 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
监察建议书
2015/02/04 职场文书
高一英语教学反思
2016/03/03 职场文书