tutorial系列mnist已经玩过了,这篇玩一下 classify_image,其实就是image label。模型已经训练好的了,直接下载下来在.pb文件中。

本机环境:

  Win10 + Python3.5 + tensorflow-1.1.0rc2-cp35-cp35m-win_amd64.whl

调用

  maybe_download_and_extract函数中的urllib.request.urlretrieve()方法出错,出现了一个证书认证的错误。

错误:

  ssl.CertificateError: hostname

  SSL:全名

解决:

  在代码中使用非认证的ssl内容:Secure socket layer安全套接字层,是一个由第三方机构来保证用户端和服务器能够使用安全加密链接通道通信的协议。它会给受信任的服务器颁发证书CA,这份证书用来秘密传递公钥。他们都是使用公钥加密数据,然后使用各自的私钥来进行解密。

  “公共密钥可广泛使用。相反,专用密钥为特定个人所有。将公共密钥传送至用户的分发机制称为证书。证书一般由证书颁发机构 (CA) 签名,以确认公共密钥来自于要求发送公共密钥的主体。CA 是相互信任的实体。

数字认证的典型实现包括证书签名过程。该过程如下图中所示。”

1.

Alice 将一个签名的证书请求发送到 CA,该证书包含有她的姓名、公共密钥以及可能的附加信息。

2.

CA 根据 Alice 的请求创建一个消息。CA 使用自己的专用密钥对消息进行签名,以创建一个单独的签名。CA 将消息和签名返回给 Alice。Alice 的证书中包含了消息和签名。

3.

Alice 将她的证书发送给 Bob,让他有权访问她的公共密钥。

4.

Bob 使用 CA 的公共密钥验证证书的签名。如果证明签名有效,则他会接受证书中的公共密钥作为 Alice 的公共密钥。

  
我们通过使用不受认证的ssl链接解决:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

错误:

  TensorFlow 中的路径错误的问题

原因:

  这个tutorial例子都是按照Linux下的路径写的比如./tmp/imagenet

  如果是win下记得改成.//tmp//imagenet

  所以第一件事儿是改路径,改路径!

注意:

  不管是在 docker还是在 Windows下运行 ,都你只需要将py中路径格式写成当前系统相关的路径格式就好了。比如 windows 下就是\\  linux下 /

  如果需要label自己的image,那么需要修改image_file的default = 绝对路径

  parser.add_argument(
'--image_file',
type=str,
default='C:\\Users\\501-PC\\Desktop\\models-master\\tutorials\\image\\imagenet\\pipos.jpg',
help='Absolute path to image file.'
)

关于下载下来的压缩包中包含的文件:

classify_image_graph_def.pb 里面存放的是已经训练好的model的结果。包括:权重weight 以及 图graph

imagenet_synset_to_human_label_map.txt 存放的是label的text内容 与 ImageNet_synset的对应。 example: n00007846 person, individual, someone, somebody, mortal, soul

imagenet_2012_challenge_label_map_proto.pbtxt 存放的是ImageNet 2012 全部数据的UID 与其 目标类型int32

entry {
  target_class: 449
  target_class_string: "n01440764"
}

 cropped_panda.jpg 就是那张可爱的panda了

  综上,classify_image.py 是一个很好的练习使用 已经训练好的模型来使用自己的input得到结果的 tutorial。

TensorFlow---image recognition--classify_image运行、文件说明与错误(路径)解决的更多相关文章

  1. 关于SSIS批量抽取Excel文件报0x80004005错误的解决办法

    原文:关于SSIS批量抽取Excel文件报0x80004005错误的解决办法 标题: Microsoft Visual Studio ------------------------------ Pa ...

  2. Apache commons StringUtils 在运行时出现NoClassDefError错误的解决方法

    Apache commons StringUtils 在运行时出现NoClassDefError错误的解决方法 在用tomcat运行WEB项目,并且使用了StringUtils包的时候,会出现 jav ...

  3. 无法写入预编译头文件,由于 IO 设备错误,无法运行此项请求的错误的解决

    作者:朱金灿 来源:http://blog.csdn.net/clever101 早上查看服务器每日构建的情况,发现出现一个诡异的错误: fatal error C1085: 无法写入预编译头文件:& ...

  4. vscode下搭建typescript时提示"无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称"错误的解决方法

    根据网上的教程,安装了node.js后,再安装了typescript,,,这时候编译生成或者在vscode的终端里调用npm或者tsc --version时,总是提示 npm : 无法将"n ...

  5. WordPress中"无法将上传的文件移动至"错误的解决方法

    #chown -R www:www /wwwroot 今天在网页上传图片到博客,结果提示:“无法将上传的文件移动至 /home/wwwroot/wp-content/uploads/2013/”,郁闷 ...

  6. gcc编译通过,运行却显示“段错误”的解决方法

    ​第一次在Liunx上(liunx mint 17)使用gcc编译c文件,竟然提示“找不到stdio.h",经过google后发现执行 sudo apt-get install build- ...

  7. 创建Web项目运行时出小错误及解决方法

    1.目录结构 2.各文件内容 index.jsp <%@ page contentType="text/html;charset=UTF-8" language=" ...

  8. win10下安装VS2005运行程序出现0x000007b错误的解决方法

    项目工程一运行就报错...真心坑... 方法如下: 1.安装DirectX 9.0c 形成原因是因为DirectX 9.0被损坏, 只需要安装即可. 如果有电脑管家的.在电脑管家里面搜索“Direct ...

  9. eclipse 导入项目后,在工程图标上出现红叉,但是工程中的文件并没有提示错误的解决方法

    进入项目包下的.settings目录,找到org.eclipse.wst.common.project.facet.core.xml文件,用记事本打开后才发现这句话有问题:<runtime na ...

  10. HUE下载HDFS文件时报ERR_CONNECTION_TIMED_OUT错误的解决办法

    1.故障描述 这是运行在公有云上的一套Hadoop集群,有一个公网IP将部分服务的端口映射出来供办公室访问. 数据分析师报告说:在HUE上面浏览HDFS文件,点击"download" ...

随机推荐

  1. nyoj_205_求余数_201404271630

    求余数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数   输入 第一 ...

  2. poj——1422 Air Raid

    Air Raid Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8577   Accepted: 5127 Descript ...

  3. 洛谷——P3379 【模板】最近公共祖先(LCA)

    P3379 [模板]最近公共祖先(LCA) 题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询 ...

  4. mssql存储过程异常处理

    MSSQL2000和MSSQL2005以上版本的异常处理语法是不相同的. SQL Server 2005以上版本支持结构化异常处理,而MSSQL2000是不支持的. 1)先看MSSQL 2000的异常 ...

  5. PyMySQL - Python3 MySQL数据库连接 - 基本操作

    一.Python连接MySQL数据库   1.导入模块 #导入模块 import pymysql   2.打开数据库连接 #打开数据库连接 #注意:这里已经假定存在数据库testdb,db指定了连接的 ...

  6. 链表倒置,这个还是考验仔细程度,第一遍还没做对 —— 剑指Offer

    https://www.nowcoder.net/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&tqId=11168&tPage= ...

  7. 码农小汪-spring框架学习之2-spring IoC and Beans 控制反转 依赖注入 ApplicationContext BeanFactory

    spring Ioc依赖注入控制反转 事实上这个东西很好理解的,并非那么的复杂. 当某个Java对象,须要调用还有一个Java对象的时候(被依赖的对象)的方法时.曾经我们的做法是怎么做呢?主动的去创建 ...

  8. 通过android XML 创建图形,降低对美工的依赖

    在开发中总会须要自己定义各种View的样式,假设总是依赖美工作图弄出须要的UI样式图片(比方:一个button要选中和默认两张图片),不但时间上会浪费.往往也会有适配问题. 尽管能够通过.9图来解决一 ...

  9. Kinect驱动的人脸实时动画

    近期几年.realtime的人脸动画開始风声水起.不少图形图像的研究者開始在这个领域不断的在顶级会议siggraph和期刊tog上面发文章. 随着kinect等便宜的三维数据採集设备的运用.以及其功能 ...

  10. has实现 更新视图但不重新加载页面原理

    URL中#符号本身以及它的字符称之为hash,可以通过window.location.hash获取.hash具有如下特点: 1.has虽然出现在URL中,但不会被包括在http请求中.因此,改变has ...