tensorflow官方教程:运用模型对类别进行预测

2023-11-11

tensorflow官方教程:运用模型对类别进行预测


本文主要包含如下内容:

  本教程将会教你如何使用Inception-v3。你将学会如何用Python或者C++把图像分为1000个类别.


python版本


  本段代码为tensorflow的教程代码.在开始运用模型Inception-v3对图像类别进行预测之前, 需要下载tensorflow/model.
  该python代码位于:models/tutorials/image/imagenet/classify_image.py中,执行代码即可进行预测:

cd models/tutorials/image/imagenet
python classify_image.py

# 测试结果如下:
giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)
indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)
lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)
custard apple (score = 0.00147)
earthstar (score = 0.00117)

  
  其中, classify_image.py的核心代码为加载模型/前向传播预测结果

def create_graph():
  """Creates a graph from saved GraphDef file and returns a saver."""       # 加载模型
  # Creates graph from saved graph_def.pb.
  with tf.gfile.FastGFile(os.path.join(
      FLAGS.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='')


def run_inference_on_image(image):      # 前向传播网络,预测图像类别
  """Runs inference on an image.

  Args:
    image: Image file name.

  Returns:
    Nothing
  """
  if not tf.gfile.Exists(image):
    tf.logging.fatal('File does not exist %s', image)
  image_data = tf.gfile.FastGFile(image, 'rb').read()       # 读入图像数据

  # Creates graph from saved GraphDef.      加载模型
  create_graph()

  with tf.Session() as sess:
    # Some useful tensors:
    # 'softmax:0': A tensor containing the normalized prediction across
    #   1000 labels.
    # 'pool_3:0': A tensor containing the next-to-last layer containing 2048
    #   float description of the image.
    # 'DecodeJpeg/contents:0': A tensor containing a string providing JPEG
    #   encoding of the image.
    # Runs the softmax tensor by feeding the image_data as input to the graph.
    softmax_tensor = sess.graph.get_tensor_by_name('softmax:0')         # 捕获输出
    predictions = sess.run(softmax_tensor,
                           {'DecodeJpeg/contents:0': image_data})       # 前向传播
    predictions = np.squeeze(predictions)

    # Creates node ID --> English string lookup.
    node_lookup = NodeLookup()      # 获得ID对应类别

    top_k = predictions.argsort()[-FLAGS.num_top_predictions:][::-1]
    for node_id in top_k:
      human_string = node_lookup.id_to_string(node_id)
      score = predictions[node_id]
      print('%s (score = %.5f)' % (human_string, score))        # 打印结果

# 代码思路:首先读入输入图像,加载测试模型,然后前向传播捕获对应输出,并打印对应结果。

C++代码


  对应的C++代码位于/tensorflow/tensorflow/examples/label_image/main.cc   参考网站
  要完成对图像的预测,首先需要下载模型,将网址复制到网站上下载网络模型, 然后将其解压到指定目录:

    https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz
    tar -zxvf inception_v3_2016_08_28_frozen.pb.tar.gz -C tensorflow/examples/label_image/data

  接下来,运用tensorflow源码进行编译,在终端中编译例子步,生成并执行二进制可执行文件:

    bazel build tensorflow/examples/label_image/...
    bazel-bin/tensorflow/examples/label_image/label_image

  它使用了框架自带的示例图片,输出的结果大致是这样:

    I tensorflow/examples/label_image/main.cc:250] military uniform (653): 0.834306
    I tensorflow/examples/label_image/main.cc:250] mortarboard (668): 0.0218695
    I tensorflow/examples/label_image/main.cc:250] academic gown (401): 0.0103581
    I tensorflow/examples/label_image/main.cc:250] pickelhaube (716): 0.00800814
    I tensorflow/examples/label_image/main.cc:250] bulletproof vest (466): 0.00535085

  这里,我们使用的默认图像是 Admiral Grace Hopper,网络模型正确地识别出她穿着一套军服,分数高达0.8。
  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow官方教程:运用模型对类别进行预测 的相关文章

随机推荐

  • 用jquery实现简单的表单验证效果

    看了 锋利的jquery 一书 练习了下期中的一个用jquery写表单验证的例子 效果如图 总结 这是个比较简单的表单验证 主要验证了表单中的用户名和邮箱两个必填选项 表单验证其实质是个不断往下过滤的过程 主要思路
  • selenium自动化录入数据

    将csv或者txt里的数据通过selenium自动录入到网页系统里 输入一个数据操作完后自动输入下一个数据 依次遍历所有的数据 比如百度搜索 有十个词要搜索 输入第一个词搜出结果后再接着输入第二个继续搜 依次遍历十个 求大神赐教 给个思路或
  • 21天打卡挑战学习MySQL——《SQL基础入门》第二周 第四篇

    活动地址 CSDN21天学习挑战赛 一 什么是SQL MySQL是一个关系型数据库管理系统 前世 瑞典MySQLAB公司 今生 属于Oracle旗下产品 MySQL是最好的RDBMS Relational Database Manageme
  • Unity游戏界面点击深色模式,游戏会退出问题的解决方法

    问题 在Unity游戏接入到android平台上时 经常会遇到这样的问题 游戏玩着玩着 点击深色模式 游戏会突然退出 具体情形下图所示 一 点击深色模式游戏退出 二 正常情况 三 解决方法 在AndroidManifest xml里 对继承
  • 【Linux】线程详解之线程概念

    前言 在我们的教材中 对线程给出以下的概念 是进程内部的一个执行分支 在进程的内部运行 属于进程的一部分 比进程更加轻量化 可能有的人看完之后都是懵的 什么叫在进程的内部运行 什么又是执行分支 为什么比进程轻量化 我们就带着这三个问题 重新
  • 2023超细致的性能测试流程,你get了吗?

    性能测试 利用工具模拟大量用户操作 验证系统承受的负载情况 性能测试的目的 找到潜在的性能问题或瓶颈 分析并解决 找出性能变化趋势 为后续扩展系统提供参考 测试监控 基准测试 配置测试 负载测试 稳定性测试 对硬件和中间件进行监控 1 学习
  • ubuntu安装ftp服务器(一般配置)

    ubuntu安装ftp服务器 1 安装vsftpd sudo apt get install vsftpd ubuntu10 10自己装了 这步省略 2 配置vsftpd 2 1 修改vsftpd的配置文件 此类配置文件通常位于 etc 目
  • Mysql建立中英文全文索引(mysql5.7以上)

    一 概念 使用索引是数据库性能优化的必备技能之一 在MySQL数据库中 有四种索引 主键索引 普通索引 唯一索引以及我们这里将要介绍的全文索引 FUNLLTEXT INDEX MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检
  • innodb存储引擎探究(一)

    mysql 体系结构和存储引擎 数据库 物理操作系统文件或者其他形式的文件 实例 mysql数据库由一个共享内存区和后台进程组成 启动mysql实例时 会读取配置文件 安装以下顺序 mysql体系结构 mysql插件式的一个存储引擎可以根据
  • java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options es启动出错(解决)

    今天重新搭建es的时候出现这个问题 以及给相关的文件夹权限但是还是不可以 这里提供一个解决问题的方法 解决思路 放弃自动挂载 采用手动进行将容器内的文件粘贴出来 问题解决 1 直接运行es docker run d name elastic
  • window编写代码,在ubuntu服务器上面远程训练yolov5

    用途 主要用来在window上面编写python相关代码 使用ubuntu的依赖 编写完成后 在ubuntu上面进行训练 此方法其实就是方便在window写代码而已 因为它的代码都会同步到ubuntu上面的 而且它在window上面的pyc
  • uniapp之scroll-view组件的练习使用 (制作可滑动的菜单)

    今天仔细研究了一下uniapp的scroll view组件使用 顺便就做了一个可滑动的菜单 点击后能够切换样式 欢迎到https www uniapp club thread 57 htm交流学习 其中 还有用到其他知识点有 1 v for
  • React Native_手把手教你做项目(四.上拉加载更多)

    在手机应用上 上拉加载更多的功能是必不可少的 同时 在实际使用的时候 当下拉加载 数据仍未返回时 用户多次重复进行下拉加载的操作 为了不产生额外的垃圾数据 我们需要进行判断 同时为了更好的用户体验 增加数据缓存功能 list js文件 Sa
  • 1096C - Polygon for the Angle-几何-性质

    思路 根 据 几 何 性 质 正 多 边 形 所 有 三 个 点组成的 角 都 是最小角的倍数 然后根据内角公式 可以求出 正多边形 最小角为 多边形内角 n 2 然后 打表发现 180边形最小角为1 最大角 178 所以 只有 179无法
  • 阿里巴巴Java开发规约插件p3c详细教程及使用感受

    作者 13 GitHub https github com ZHENFENG13 版权声明 本文为原创文章 未经允许不得转载 阿里巴巴Java开发手册 在进入正题介绍这款插件之前 首先来谈一下 阿里巴巴Java开发手册 2017年年初 首次
  • R和Python概率分布统计和Python验证独立性和平稳性时间序列

    R概率分布和统计 R 基础知识 汇总统计数据 图形显示 概率基础知识 概率规则 条件概率 后验概率和贝叶斯 可靠性 离散分布介绍 几何分布 概率密度函数 概率密度函数 pdf 定义为 P X x
  • Qt教程7--一个事件触发另一个

    Qt教程一 第七章 一个事物领导另一个 原文 QT3 1的帮助文档翻译 zieckey zieckey yahoo com cn 修改 zieckey zieckey yahoo com cn 这个例子显示了如何使用信号和槽来创建自定义窗口
  • 【RDMA】最全RDMA学习教程(建议收藏)

    目录 RDMA技术分享 RDMA技术分享 RDMA技术详解 RDMA编程 RDMA 网络 ROCE iWarp 性能优化 配置和特性优化 Qos流控 命令和测试 文档和相关资料 作者 bandaoyu 随时更新 源文连接 https blo
  • 图片上传的ajax代码,一个伪ajax图片上传代码实现示例

    if FILES gt window parent ajaxUploadPicture uploadCallback http img0 bdstatic com img image 5099213b07eca8065380ce7f75e9
  • tensorflow官方教程:运用模型对类别进行预测

    tensorflow官方教程 运用模型对类别进行预测 本文主要包含如下内容 tensorflow官方教程运用模型对类别进行预测 python版本 C代码 本教程将会教你如何使用Inception v3 你将学会如何用Python或者C 把图