实现Tensorflow官方API的过程及遇到的坑

最近开始搞深度学习中的图像处理,首先想着实现一下Tensorflow官方给出的API,实现过程中遇到了不少的坑,最后终于实现了,总结一下,供大家参考。

一、搭建环境

        本来信心满满的想安装GPU版的Tensorflow,装完之后发现自己电脑的显卡型号并不支持,只好安装CPU版的了。

        win10、Anaconda 3、Tensorflow 1.8

二、下载Tensorflow官方模型https://github.com/tensorflow/models

        下载完models之后,建立环境变量PYTHONPATH,将这两个路径*:\***\models;*:\***\models\research\slim添加进去,确保models可用。(我是将models-master改为了models)

编译:

        为了使用Object Detection包,需要先把proto文件手动编译成python脚本,这时需要下载protobuf和protoc,最好不要下载3.5的版本,因为我下载之后报object_detection/protos/*.proto: No such file or directory这样的错误,下载3.4的protobuf-3.4.0-win32.zip即可(链接https://github.com/google/protobuf/releases/tag/v3.4.0)。

       下载完并解压之后,将bin文件夹中的protoc.exe放到C:\Windows\System32文件夹下,在models\research文件夹下按住shift点击鼠标右键,打开命令窗口,输入protoc显示如下内容就说明可以开始编译了。(或者将protoc-3.4.0-win32/bin 下的protoc.exe复制到protobuf-3.4.0\src下,并将D:/code/python/TensorFlow/protoc-3.4.0-win32/bin/protoc路径配置到环境变量path中。)

实现Tensorflow官方API的过程及遇到的坑_第1张图片

        Protobuf 编译,用protoc可执行文件编译目录object_detection/protos下的proto文件,生成Python文件,命令为(protoc object_detection/protos/*.proto --python_out=.)

测试:

        在命令行目录 D:\code\python\TensorFlow\models\research下 输入 jupyter notebook 打开 jupyter 编辑器。然后在 jupyter 编辑器中进入 object_detection 文件夹,然后打开 object_detection_tutorial.ipynb

此时地址栏的地址应该是:http://localhost:8888/notebooks/object_detection/object_detection_tutorial.ipynb

然后在 jupyter 编辑器选择 :Cell -> Run All

出现下图就表示成功了!

实现Tensorflow官方API的过程及遇到的坑_第2张图片


实现Tensorflow官方API的过程及遇到的坑_第3张图片

在这部分遇到的坑就是,import tensorflow as tf 时报错了,因为在Windows下安装tensorflow时,是定义了一个名为tensorflow的虚拟环境,将tensorflow安装在了这里。而Jupyter和ipython是在大环境下安装的,因此会找不到tensorflow。此时需要先将Jupyter和ipython卸载,使用pip uninstall *** 命令即可,然后再使用activate tensorflow命令进去tensorflow环境,重新安装Jupyter和ipython,使用pip install ***命令。

三、遇到的错误

    在运行时,报import matplotlib; matplotlib.use('Agg') # pylint: disable=multiple-statemen错误,将from matplotlib import pyplot as plt 改为import matplotlib.pyplot as plt即可解决这个错误。

    在使用opencv时,出现了一点点小错,自己写了一个简单的小例子命名为cv2.py,导致import cv2 调用cv2.VideoCapture(0)时,总是报AttributeError: module 'cv2' has no attribute 'VideoCapture'错误。原因就是名字不能起cv2,容易发生歧义。


你可能感兴趣的:(实现Tensorflow官方API的过程及遇到的坑)