iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python怎么使用tensorflow进行图像分类
  • 680
分享到

python怎么使用tensorflow进行图像分类

2023-07-02 13:07:13 680人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“python怎么使用Tensorflow进行图像分类”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么使用tensorflow进行图像分类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习

本文小编为大家详细介绍“python怎么使用Tensorflow进行图像分类”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么使用tensorflow进行图像分类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

正文

谷歌在大型图像数据库ImageNet上训练好了一个Inception-v3模型,这个模型我们可以直接用来进来图像分类。

下载完解压后,得到几个文件:

其中

classify_image_graph_def.pb 文件就是训练好的Inception-v3模型。

imagenet_synset_to_human_label_map.txt是类别文件。

随机找一张图片

python怎么使用tensorflow进行图像分类

对这张图片进行识别,看它属于什么类?

代码如下:先创建一个类nodeLookup来将softmax概率值映射到标签上。

然后创建一个函数create_graph()来读取模型。

读取图片进行分类识别

# -*- coding: utf-8 -*-import tensorflow as tfimport numpy as npimport reimport osmodel_dir='D:/tf/model/'image='d:/cat.jpg'#将类别ID转换为人类易读的标签class NodeLookup(object):  def __init__(self,               label_lookup_path=None,               uid_lookup_path=None):    if not label_lookup_path:      label_lookup_path = os.path.join(          model_dir, 'imagenet_2012_challenge_label_map_proto.pbtxt')    if not uid_lookup_path:      uid_lookup_path = os.path.join(          model_dir, 'imagenet_synset_to_human_label_map.txt')    self.node_lookup = self.load(label_lookup_path, uid_lookup_path)  def load(self, label_lookup_path, uid_lookup_path):    if not tf.gfile.Exists(uid_lookup_path):      tf.logging.fatal('File does not exist %s', uid_lookup_path)    if not tf.gfile.Exists(label_lookup_path):      tf.logging.fatal('File does not exist %s', label_lookup_path)    # Loads mapping from string UID to human-readable string    proto_as_ascii_lines = tf.gfile.GFile(uid_lookup_path).readlines()    uid_to_human = {}    p = re.compile(r'[n\d]*[ \S,]*')    for line in proto_as_ascii_lines:      parsed_items = p.findall(line)      uid = parsed_items[0]      human_string = parsed_items[2]      uid_to_human[uid] = human_string    # Loads mapping from string UID to integer node ID.    node_id_to_uid = {}    proto_as_ascii = tf.gfile.GFile(label_lookup_path).readlines()    for line in proto_as_ascii:      if line.startswith('  target_class:'):        target_class = int(line.split(': ')[1])      if line.startswith('  target_class_string:'):        target_class_string = line.split(': ')[1]        node_id_to_uid[target_class] = target_class_string[1:-2]    # Loads the final mapping of integer node ID to human-readable string    node_id_to_name = {}    for key, val in node_id_to_uid.items():      if val not in uid_to_human:        tf.logging.fatal('Failed to locate: %s', val)      name = uid_to_human[val]      node_id_to_name[key] = name    return node_id_to_name  def id_to_string(self, node_id):    if node_id not in self.node_lookup:      return ''    return self.node_lookup[node_id]#读取训练好的Inception-v3模型来创建graphdef create_graph():  with tf.gfile.FastGFile(os.path.join(      model_dir, 'classify_image_graph_def.pb'), 'rb') as f:    graph_def = tf.GraphDef()    graph_def.ParseFromString(f.read())    tf.import_graph_def(graph_def, name='')#读取图片image_data = tf.gfile.FastGFile(image, 'rb').read()#创建graphcreate_graph()sess=tf.Session()#Inception-v3模型的最后一层softmax的输出softmax_tensor= sess.graph.get_tensor_by_name('softmax:0')#输入图像数据,得到softmax概率值(一个shape=(1,1008)的向量)predictions = sess.run(softmax_tensor,{'DecodeJpeg/contents:0': image_data})#(1,1008)->(1008,)predictions = np.squeeze(predictions)# ID --> English string label.node_lookup = NodeLookup()#取出前5个概率最大的值(top-5)top_5 = predictions.argsort()[-5:][::-1]for node_id in top_5:  human_string = node_lookup.id_to_string(node_id)  score = predictions[node_id]  print('%s (score = %.5f)' % (human_string, score))sess.close()

最后输出

tiger cat (score = 0.40316)
Egyptian cat (score = 0.21686)
tabby, tabby cat (score = 0.21348)
lynx, catamount (score = 0.01403)
Persian cat (score = 0.00394)

读到这里,这篇“python怎么使用tensorflow进行图像分类”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

--结束END--

本文标题: python怎么使用tensorflow进行图像分类

本文链接: https://www.lsjlt.com/news/342322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python怎么使用tensorflow进行图像分类
    本文小编为大家详细介绍“python怎么使用tensorflow进行图像分类”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么使用tensorflow进行图像分类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-02
  • python深度学习tensorflow训练好的模型进行图像分类
    目录正文随机找一张图片读取图片进行分类识别最后输出正文 谷歌在大型图像数据库ImageNet上训练好了一个Inception-v3模型,这个模型我们可以直接用来进来图像分类。 下载链...
    99+
    2022-11-11
  • TensorFlow-slim包进行图像数据集分类---具体流程
    TensorFlow中slim包的具体用法 1、训练脚本文件(该文件包含数据下载打包、模型训练,模型评估流程)3、模型训练1、数据集相关模块:2、设置网络模型模块3、数据预处理模块4、定义损失loss5、定义优化器模块 本次...
    99+
    2023-08-30
    tensorflow neo4j 人工智能
  • 怎么使用python进行图像绘制
    本文小编为大家详细介绍“怎么使用python进行图像绘制”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用python进行图像绘制”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。正文实际上前面我们就已经用到了...
    99+
    2023-07-02
  • 怎么用matlab对图像进行分割
    在MATLAB中,可以使用以下几种方法对图像进行分割:1. 基于阈值的分割:使用imbinarize函数将图像转换为二值图像。可以使...
    99+
    2023-10-08
    matlab
  • 怎么使用python进行图像边缘检测
    本篇内容主要讲解“怎么使用python进行图像边缘检测”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python进行图像边缘检测”吧!边缘检测图像边缘是指图像中表达物体的周围像素灰度发生...
    99+
    2023-07-05
  • 使用Python怎么实现一个图像分类功能
    今天就跟大家聊聊有关使用Python怎么实现一个图像分类功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语...
    99+
    2023-06-14
  • Python使用OpenCV和K-Means聚类对毕业照进行图像分割
    图像分割是将图像分割成多个不同区域(或片段)的过程。目标是将图像的表示变成更容易和更有意义的图像。 在这篇博客中,我们将看到一种图像分割方法,即K-Means Clustering。...
    99+
    2022-11-12
  • 使用Python、TensorFlow和Keras来进行垃圾分类的操作方法
    目录1. 数据准备2. 数据预处理3. 模型构建4. 模型训练5. 模型评估垃圾分类是现代城市中越来越重要的问题,通过垃圾分类可以有效地减少环境污染和资源浪费。 随着人工智能技术的发...
    99+
    2023-05-19
    Python垃圾分类 Python TensorFlow垃圾分类
  • 怎么用Python和OpenCV进行图像处理
    这篇文章主要介绍“怎么用Python和OpenCV进行图像处理”,在日常操作中,相信很多人在怎么用Python和OpenCV进行图像处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python和Ope...
    99+
    2023-06-16
  • Python使用Pillow进行图像处理
    一、概述 PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。 由于PIL仅支持到Pyt...
    99+
    2022-11-13
  • python图像分割算法怎么使用
    Python中常用的图像分割算法有基于阈值的分割算法、基于边缘的分割算法和基于区域的分割算法。以下是使用这些算法的示例代码:1. 基...
    99+
    2023-10-18
    python
  • Python如何使用OpenCV和K-Means聚类对毕业照进行图像分割
    这篇文章给大家分享的是有关Python如何使用OpenCV和K-Means聚类对毕业照进行图像分割的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们将看到一种图像分割方法,即K-Means Clustering。...
    99+
    2023-06-15
  • python中怎么使用Keras进行简单分类
    本篇内容介绍了“python中怎么使用Keras进行简单分类”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Keras中分类的重要函数1、np...
    99+
    2023-06-30
  • Python使用 OpenCV 进行图像投影变换
    投影变换(仿射变换) 在数学中,线性变换是将一个向量空间映射到另一个向量空间的函数,通常由矩阵实现。如果映射保留向量加法和标量乘法,则映射被认为是线性变换。 要将线性变换应用于向量...
    99+
    2022-11-11
  • python怎么在二维图像上进行卷积
    这篇文章将为大家详细讲解有关python怎么在二维图像上进行卷积,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、说明对于二维矩阵,卷积时卷积核由左向右、由上向下滑动,对应位置要求加权和。一般图片为RGB...
    99+
    2023-06-15
  • 怎么用Python进行系统聚类分析
    怎么用Python进行系统聚类分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在进行机器学习时,我们往往要对数据进行聚类分析,聚类,说白了就是把相似的样品点/...
    99+
    2023-06-16
  • Python使用OpenCV对图像进行缩放功能
    OpenCV:图片缩放和图像金字塔 对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像。 要缩小图像,一般推荐使用C...
    99+
    2022-11-13
  • 怎么在python中对图像进行灰度处理
    本篇文章给大家分享的是有关怎么在python中对图像进行灰度处理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C#...
    99+
    2023-06-14
  • python怎么使用openai生成图像
    这篇文章主要介绍“python怎么使用openai生成图像”,在日常操作中,相信很多人在python怎么使用openai生成图像问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么使用openai生...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作