TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片


Posted in Python onMarch 14, 2019

本文是Python通过TensorFlow卷积神经网络实现猫狗识别的姊妹篇,是加载上一篇训练好的模型,进行猫狗识别

本文逻辑:

  1. 我从网上下载了十几张猫和狗的图片,用于检验我们训练好的模型。
  2. 处理我们下载的图片
  3. 加载模型
  4. 将图片输入模型进行检验

代码如下:

#coding=utf-8 
import tensorflow as tf 
from PIL import Image 
import matplotlib.pyplot as plt
import input_data 
import numpy as np
import model
import os 
#从指定目录中选取一张图片 
def get_one_image(train): 
  files = os.listdir(train)
  n = len(files)
  ind = np.random.randint(0,n)
  img_dir = os.path.join(train,files[ind]) 
  image = Image.open(img_dir) 
  plt.imshow(image)
  plt.show()
  image = image.resize([208, 208]) 
  image = np.array(image)
  return image 
def evaluate_one_image(): 
 #存放的是我从百度下载的猫狗图片路径
  train = '/Users/yangyibo/GitWork/pythonLean/AI/猫狗识别/testImg/' 
  image_array = get_one_image(train) 
  with tf.Graph().as_default(): 
    BATCH_SIZE = 1 # 因为只读取一副图片 所以batch 设置为1
    N_CLASSES = 2 # 2个输出神经元,[1,0] 或者 [0,1]猫和狗的概率
    # 转化图片格式
    image = tf.cast(image_array, tf.float32) 
    # 图片标准化
    image = tf.image.per_image_standardization(image)
    # 图片原来是三维的 [208, 208, 3] 重新定义图片形状 改为一个4D 四维的 tensor
    image = tf.reshape(image, [1, 208, 208, 3]) 
    logit = model.inference(image, BATCH_SIZE, N_CLASSES) 
    # 因为 inference 的返回没有用激活函数,所以在这里对结果用softmax 激活
    logit = tf.nn.softmax(logit) 
    # 用最原始的输入数据的方式向模型输入数据 placeholder
    x = tf.placeholder(tf.float32, shape=[208, 208, 3]) 
    # 我门存放模型的路径
    logs_train_dir = '/Users/yangyibo/GitWork/pythonLean/AI/猫狗识别/saveNet/'  
    # 定义saver 
    saver = tf.train.Saver() 
    with tf.Session() as sess: 
      print("从指定的路径中加载模型。。。。")
      # 将模型加载到sess 中 
      ckpt = tf.train.get_checkpoint_state(logs_train_dir) 
      if ckpt and ckpt.model_checkpoint_path: 
        global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] 
        saver.restore(sess, ckpt.model_checkpoint_path) 
        print('模型加载成功, 训练的步数为 %s' % global_step) 
      else: 
        print('模型加载失败,,,文件没有找到') 
      # 将图片输入到模型计算
      prediction = sess.run(logit, feed_dict={x: image_array})
      # 获取输出结果中最大概率的索引
      max_index = np.argmax(prediction) 
      if max_index==0: 
        print('猫的概率 %.6f' %prediction[:, 0]) 
      else: 
        print('狗的概率 %.6f' %prediction[:, 1]) 
# 测试
evaluate_one_image()

/Users/yangyibo/GitWork/pythonLean/AI/猫狗识别/testImg/ 存放的是我从百度下载的猫狗图片

TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片

执行结果:

因为从testimg 中选取图片是随机的,所以每次执行的结果不同

从指定的路径中加载模型。。。。
模型加载成功, 训练的步数为 11999
狗的概率 0.964047
[Finished in 6.8s]

代码地址:https://github.com/527515025/My-TensorFlow-tutorials/blob/master/猫狗识别/evaluateCatOrDog.py

欢迎star。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
python数据结构之二叉树的统计与转换实例
Apr 29 Python
从零学python系列之从文件读取和保存数据
May 23 Python
Python实现带百分比的进度条
Jun 28 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
Python对数据进行插值和下采样的方法
Jul 03 Python
python requests爬取高德地图数据的实例
Nov 10 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
PyQt5 多窗口连接实例
Jun 19 Python
python修改文件内容的3种方法详解
Nov 15 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
python怎么对数字进行过滤
Jul 05 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 #Python
python3实现钉钉消息推送的方法示例
Mar 14 #Python
详解Python做一个名片管理系统
Mar 14 #Python
在Python中使用Neo4j的方法
Mar 14 #Python
浅谈Python中eval的强大与危害
Mar 13 #Python
详解python中init方法和随机数方法
Mar 13 #Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 #Python
You might like
MYSQL环境变量设置方法
2007/01/15 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
js 居中漂浮广告
2010/03/21 Javascript
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
医药代表个人的求职信分享
2013/12/08 职场文书
党校培训思想汇报
2013/12/30 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
节约能源标语
2014/06/17 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
课程设计的心得体会
2014/09/03 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
大学生村官入党自传
2015/06/26 职场文书
2016年元旦主持词
2015/07/06 职场文书
医院病假条范文
2015/08/17 职场文书
话题作文之诚信
2019/11/28 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书