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

本文逻辑:

我从网上下载了十几张猫和狗的图片,用于检验我们训练好的模型。

处理我们下载的图片

加载模型

将图片输入模型进行检验

代码如下:

#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/ 存放的是我从百度下载的猫狗图片

执行结果:

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

从指定的路径中加载模型。。。。

模型加载成功, 训练的步数为 11999

狗的概率 0.964047

[Finished in 6.8s]

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

欢迎star。

总结

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

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

本文地址: http://www.cppcns.com/jiaoben/python/254362.html

python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片相关推荐

  1. python 图片比较 猫_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片

    本文逻辑: 我从网上下载了十几张猫和狗的图片,用于检验我们训练好的模型. 处理我们下载的图片 加载模型 将图片输入模型进行检验 代码如下: #coding=utf-8 import tensorflo ...

  2. 猫狗图像识别(卷积神经网络算法,TensorFlow安装)

    目录 一.tensorflow库安装 (1)TensorFlow的历史版本与对应Python版本 (2)Python版本查询 (3)找到上面的版本框进行对应的TensorFlow下载 (4)安装成功 ...

  3. TensorFlow:实战Google深度学习框架(五)图像识别与卷积神经网络

    第6章 图像识别与卷积神经网络 6.1 图像识别问题简介及经典数据集 6.2 卷积神经网络简介 6.3 卷积神经网络常用结构 6.3.1 卷积层 6.3.2 池化层 6.4 经典卷积神经网络模型 6. ...

  4. CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用

    CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用 目录 基于tensorflow框架采用CNN(改进 ...

  5. 论文解析:人脸检测中级联卷积神经网络的联合训练

    论文解析:人脸检测中级联卷积神经网络的联合训练 商汤科技解析CVPR2016论文:人脸检测中级联卷积神经网络的联合训练 width="250" height="250&q ...

  6. python狗图像识别_TensorFlow实践教程:使用神经网络对犬种进行图像识别分类

    问题 几天前,我注意到由Kaggle主办的犬种识别挑战赛.我们的目标是建立一个模型,能够通过"观察"图像来进行犬种分类.我开始考虑可能的方法来建立一个模型来对犬种进行分类,以及了解 ...

  7. 06.图像识别与卷积神经网络------《Tensorflow实战Google深度学习框架》笔记

    一.图像识别问题简介及经典数据集 图像识别问题希望借助计算机程序来处理.分析和理解图片中的内容,使得计算机可以从图片中自动识别各种不同模式的目标和对象.图像识别问题作为人工智能的一个重要领域,在最近几 ...

  8. 基于keras的猫狗分类(小型卷积神经网络)

    背景: 本文主要介绍猫狗分类问题,原型取自2013年的kaggle计算机竞赛,你可以从https://www.kaggle.com/c/dogs_vs_cats/data获取必要的数据集,或者寻找其他 ...

  9. python卷积神经网络cnn的训练算法_【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理...

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

最新文章

  1. 2019年上半年收集到的人工智能机器学习方向干货文章
  2. 无法在指定计算机上定位,Win10电脑无法打开定位功能时启动GeolocationService服务提示找不到文件怎么办...
  3. python是一种通用编程语言-想自学一种编程语言,各种编程语言都有什么区别?...
  4. Eclipse代码注释模板
  5. 实例解析:OperaMasks2.0中的DataGrid之一:定义DataGrid
  6. 用python画三角函数
  7. 微pe工具箱 系统安装教程_微pe工具箱怎么安装win10系统?微pe工具箱安装win10系统详细教程...
  8. 常用公共数据集----数据获取
  9. 如何通过抖音来进行广告宣传
  10. 计算机通过镜子测试,镜子测试
  11. plsql登录Not logged on
  12. 计算房租收入比(1)- scrapy 爬取网上租房信息
  13. 输入文字后不会自动变长的下划线如何制作
  14. 3D游戏之投影矩阵算法技术实现
  15. 【IoT】产品管理:产品部管理管理规章与制度
  16. 群晖NAS搭建WebDav服务,并内网穿透实现公网访问
  17. 练习print函数的使用(python)
  18. 云原生与微服务架构基础:01 | 为什么说云原生重构了互联网产品开发模式
  19. 【random库与math库】python程序对一组随机数求平均值,标准差,中位数,离差,离差方,总体方差,样本方差,样本标准差
  20. 斐讯T1/N1 Linux 更换中文系统环境和界面

热门文章

  1. apache mysql php 安装配置_Windows下Apache,MySql,PHP安装配置
  2. 3.Redis与python交互
  3. excel打开csv错误换行_「乱吐槽·乱学习」excel高手捷径:一招鲜,吃遍天③
  4. 模型评价 - 判断数据模型拟合效果的三种方法
  5. 谢撩,人在斯坦福打SoTA
  6. 前端遇上Go: 静态资源增量更新的新实践
  7. 论文浅尝 | GEOM-GCN: Geometric Graph Convolutional Networks
  8. 论文浅尝 | 对于知识图谱嵌入表示的几何形状理解
  9. 论文浅尝 | 问题生成(QG)与答案生成(QA)的结合
  10. 论文浅尝 |「知识表示学习」专题论文推荐