本文是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 设置为1N_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  四维的 tensorimage = tf.reshape(image, [1, 208, 208, 3])  logit = model.inference(image, BATCH_SIZE, N_CLASSES)  # 因为 inference 的返回没有用激活函数,所以在这里对结果用softmax 激活logit = tf.nn.softmax(logit)  # 用最原始的输入数据的方式向模型输入数据 placeholderx = 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/ 存放的是我从百度下载的猫狗图片

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

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

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

欢迎star。

TensorFlow 卷积神经网络之猫狗识别(二)相关推荐

  1. 【实战】kaggle猫狗大战-卷积神经网络实现猫狗识别

    卷积神经网络:猫狗识别 目录 第一步:导入数据集 第二步:数据预处理 第三步:迁移学习 第四步:模型保存 第五步:模型融合 第一步:导入数据集 kaggle猫狗大战数据集地址:kaggle # 将ka ...

  2. 基于卷积神经网络的猫狗识别

    卷积神经网络的猫狗识别 任务需求 环境配置 识别猫狗实例 首先导入库 数据预处理: 读取数据: 定义网络: 调整机器学习率 定义训练过程 训练开始 训练结果 用于测试代码 结果 任务需求 按照 htt ...

  3. 毕设:基于CNN卷积神经网络的猫狗识别、狗品种识别(Tensorflow、Keras、Kaggle竞赛)

    基于卷积神经网络的图像识别算法及其应用研究 毕业快一年了,拿出来分享给大家,我和网上唯一的区别就是,我能够同时实现两个方案(猫狗识别和狗品种识别),我当时也是网上各种查,花了2,3个月的时间,一个萝卜 ...

  4. 第十二章 卷积神经网络实战--猫狗识别

    1.介绍 我们已经学习了如何用传统的神经网络进行机器学习,在本章我们学习一下如何使用简单的神经网络进行图像分类.数据集用的是Kaggle的猫狗数据集.这里只有前100张,如果需要更多的可以去Kaggl ...

  5. 卷积神经网络的猫狗识别

    文章目录 一.准备工作 二.猫狗识别 2.1.下载数据集 2.1.1. 图片分类 2.1.2.图片数量统计 2.2.卷积神经网络CNN 2.2.1.网络模型搭建 2.2.2.图像生成器读取文件中数据 ...

  6. 基于卷积神经网络的猫狗识别系统的设计与实现

    1.1 题目的主要研究内容 (1)工作的主要描述 通过卷积网络实现猫狗图像的识别.首先,在数据集中抽取训练集和测试集:其次,对图像进行预处理和特征提取,对图像数据进行图像增强,将图像从.jpg格式转化 ...

  7. 使用卷积神经网络处理猫狗识别数据集_v1

    说明 采用pytorch框架实现猫狗识别. 数据集下载 猫狗识别数据集下载: 链接:https://pan.baidu.com/s/1hfzSacJbNBUhcDDtPnzlsg  提取码:fu74 ...

  8. Pytorch基于卷积神经网络的猫狗识别

    实验环境 Pytorch 1.4.0 conda 4.7.12 Jupyter Notebook 6.0.1 Python 3.7 数据集介绍 实验采用的猫和狗的图片来自 Kaggle 竞赛的一个赛题 ...

  9. (人工智能)基于卷积神经网络的猫狗识别

    目录 一.实验条件 二.狗猫数据集的分类实验 1.运行程序:根据命名对图片分类 2.统计图片数量 三.猫狗分类的实例 1.导入相应的库 2.设置超参数 3.图像处理与图像增强 4.读取数据集和导入数据 ...

最新文章

  1. c 反编译工具_App安全检测实践基础——工具篇
  2. [CareerCup] 17.6 Sort Array 排列数组
  3. python图片找字_如何用python查找图像中的字母
  4. 利用 CocoaLumberjack 搭建自己的 Log 系统
  5. 如何添加引文标_如何在Google文档中查找和添加引文
  6. Vue + Spring Boot 项目实战(五):数据库的引入
  7. 再学 GDI+[94]: TGPImage(14) - 增减图像的红、绿、蓝三色的成分
  8. 华为畅享max有没有人脸识别_华为三款5000mAh超大电池手机,都是续航王者,最低只要1499元...
  9. opencv之划痕缺陷检测
  10. 易筋SpringBoot 2.1 | 第九篇:SpringBoot使用Redis内存数据库
  11. Facebook账号注册需要注意什么?Facebook养号技巧?
  12. 循环结构中break、continue、return和exit的区别
  13. Excel选中单元格光标一直闪
  14. 企业转型升级,务必抓住“企业上云”政策红利
  15. 嵌入式系统基本概念(硬件篇)
  16. Think in java(四)枚举类enum的基本特性、构造方法与方法覆盖、Switch语句中的enum运用
  17. 职场吐槽大会,原来办公软件也有如此多神技能?
  18. python解决换零钱问题_多种解法解决“零钱兑换”问题
  19. 社区使用人脸识别闸机有什么好处?
  20. 水仙花数(Java语言)——最基础全面的讲解

热门文章

  1. java word中插入图片_在Word文档中插入图片
  2. 6p14推挽胆机20w功放电路图_6P14推挽双输出牛胆机
  3. 喝酸奶八大误区[zt]
  4. android 转码工具下载,m3u8视频转码工具
  5. 3个办法解决:微信删除的聊天记录怎么恢复?
  6. 检查更新时出错:无法启动更新检查(错误代码为 3: 0x80040154)
  7. 玉米社:SEM竞价推广预算设置方法
  8. 卡尔曼滤波的细致讲解从一维到多维
  9. gnutls_handshake() failed: A TLS packet with unexpected length was received
  10. fluent周期边界_在Fluent中采用TUI设置周期性边界的方法