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 基础教程之包和类的用法
Feb 23 Python
通过Python实现自动填写调查问卷
Sep 06 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
使用Python实现跳帧截取视频帧
May 31 Python
Python3 JSON编码解码方法详解
Sep 06 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
python-jwt用户认证食用教学的实现方法
Jan 19 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
python 爬取腾讯视频评论的实现步骤
Feb 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二维码生成
2015/10/19 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
jquery.validate使用攻略 第一部
2010/07/01 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
vue.js实现双击放大预览功能
2020/06/23 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
python中的TCP(传输控制协议)用法实例分析
2019/11/15 Python
如何在django中添加日志功能
2020/02/06 Python
tensorboard显示空白的解决
2020/02/15 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
教师求职信范文
2014/05/24 职场文书
办理房产证委托书
2014/09/18 职场文书
学校少先队工作总结
2015/08/12 职场文书
餐厅开业活动方案
2019/07/08 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js