Ubuntu 16.04 安装Tensorflow Object Detection API遇到的问题解决(一)

**

Ubuntu 16.04 安装Tensorflow Object Detection API

**

本篇的内容主要参考以下链接:https://blog.csdn.net/pkokocl/article/details/82596089,
该博主描述的比较清楚,对于解决实际操作过程中遇到的问题很有帮助,下面针对我遇到的问题做一个记录。

环境:本次实验是在unbuntu 16.04下, tensorflow版本时1.10.1,python 3.5的环境下实现的。

依赖包的安装
此处注意:使用pip安装依赖包时一定要注意使用 pip 还是 pip3 ,否则可能在使用时会出现该包不存在的提示。

      sudo apt-get install protobuf-compiler
      sudo apt-get install python-pil
      sudo apt-get install python-lxml
      sudo pip3 install jupyter
      sudo pip3 install matplotlib

数据的下载

可选择直接github上下载,或者是在终端使用命令下载,数据集链接: https://github.com/tensorflow/models
在终端使用如下命令:

    mkdir tensorflow
    cd tensorflow
    git clone https://github.com/tensorflow/models.git

protobuf编译
若采用命令下载,则下载的文件位于当前目录下,其中tensorflow是自己建立的文件夹,根据其他博客的说法,此处为了与网上路径保持一致(为什么,不清楚,估计没有影响),在目录~/tensorflow/models/research/object_detection打开终端输入以下命令将proto文件编译为.py文件:

$ protoc ~/tensorflow/models/research/object_detection/protos/*.proto --python_out=.

此处注意:输入命令之后可能出现,以下错误:

object_detection/protos/ssd.proto:104:3: Expected "required", "optional", or "repeated".
object_detection/protos/ssd.proto:104:12: Expected field name.
object_detection/protos/model.proto: Import "object_detection/protos/ssd.proto" was not found or had errors.
object_detection/protos/model.proto:12:5: "Ssd" is not defined.

解决方案同上面链接中的一致。
查看当前protoc的版本

$ protoc --version
libprotoc 2.6.1

版本为2.6.1,需要升级protoc版本。
卸载protoc旧版本,sudo apt-get remove protobuf-compiler
https://github.com/google/protobuf/releases 下载最新的protoc安装包 protobuf-all-3.6.1.tar.gz
下载完后解压,然后执行下面的命令编译安装:

$ cd protobuf-3.6.1
$ ./configure --prefix=/usr
$ make -j15
$ make check -j15
$ sudo make install -j15
$ sudo ldconfig
$ protoc --version

将slim添加到PYTHONPATH
直接在.bashrc 文件中添加如下一行,使用如下一行,其中/×××代表系统路径

export PYTHONPATH=$PYTHONPATH:/×××/tensorflow/models/research:/your home path/tensorflow/models/research/slim

然后在终端执行 source ~/.bashrc

验证测试
在~/tensorflow/models/research目录下执行如下命令:

$ python3  object_detection/builders/model_builder_test.py

出现以下结果:No model name matplotlib
在终端使用命令:

 $ sudo apt-get install python-matplotlib
 $ pip3 install --user matplotlib
   
 注意:命令中python是指python2,python3是指3.0版本的python,与pip,pip3的一样

jupyter问题
在环境搭建好,jupyter安装好之后会出现,io_loop参数问题:
解决方案:
在终端输入以下命令:

$ pip3 uninstall tornado
$ pip3 install tornado==4.5.3

#切记不要安装5.0以上版本,默认安装时为5.0版本,先卸载后再重新安***r> 对jupyter操作的问题: 记得去掉simple …off的勾,在右上角

全部评论

相关推荐

xdm怎么说 要被拷打了 担心是KPI
丹田:面就完了,就当日薪四位数的大佬免费给给你面试。
点赞 评论 收藏
分享
大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务