TensorFlow Object Detection API 在Windows10和Ubuntu上的配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xinyu3307/article/details/79497333

前言

好久没用博客了,因为服务器原因重装了好几次,tensorflow也一直跟着重装,这篇博文相比上一篇会更完善点,用的版本也会新一些。主要记录在win10和ubuntu上配置Tensorflow目标检测接口的过程和一些遇到的问题,也会记录gpu版tensorflow的安装过程(CUDA和cuDNN)。在使用接口之前,请先确认自己能使用GPU版本的tensorflow!这篇只有配置,以后有时间记录下如何训练自己的数据集。最近tensorflow还开放了实例分割的接口,还得弄一弄,跟不上了呀~哈哈


Windows10

环境配置:Anaconda3+Tensorflow1.6.0(gpu)+Keras2.1.5(可选)

注:还没安装CUDA和cuDNN的先看最下面的附

Protobuf 编译

下载(protoc-3.4.0-win32.zip)

  • 请下载3.4.0版本的protobuf,3.5+版本会出现一个bug:在win10下无法理解*.proto ,所以输入下面的指令后会提示no such fileXXX 。

解压后将bin文件夹中的【protoc.exe】放到C:\Windows

  • 此步骤需要windows文件夹的写入权限,但其实只要protoc.exe 在某个环境变量的目录下即可,不一定要在c:\wiindows。放在tensorflow\model\research,然后添加环境变量也可以。

在models\research目录下shift+右键打开Powershell窗口,输入:
protoc object_detection/protos/*.proto --python_out=.
不报错即可。

Python路径的添加

在Anaconda的包目录:C:\Users\LXY\Anaconda3\Lib\site-packages
新建.pth文件,加入以下两行路径:

C:\Users\LXY\TensorFlow\models\research
C:\Users\LXY\TensorFlow\models\research\slim
  • 避免出现错误:no module name ‘object detection’,在Ubuntu的配置上也有类似步骤。

测试

python object_detection/builders/model_builder_test.py
不报错即可
这里写图片描述

附:CUDA和cuDNN安装

注:不同的TensorFlow版本要求不同的CUDA及其对应的cuDNN,eg. tensorflow1.3.0要求CUDA8.0
但是tensorflow1.6.0要求CUDA9.0,如果强行要CUDA9.1或者CUDA8.1请用大神们编译的.whl

因为用的Tensorflow1.6.0,所以下载CUDA9.0以及对应的cuDNN7.1.1(更正一下,只能用v7.0,在训练数据的时候才发现)

  • 安装CUDA的时候,第一步是系统兼容性检查,如果这步出现Warning,没检查到合适硬件,先跳过,看能不能安装成功,可以成功的话就不用管这个兼容检查问题了。
  • 新安装的CUDA不会覆盖原有CUDA的环境变量,而是排在原有变量的前面,所以当需要CUDA时,会优先检索新安装的CUDA。

安装完CUDA后,将cuDNN的文件复制过去

  • 安装完的CUDA在目录: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\,我们一开始选的目录是用来暂放提取文件的,安装完后就自动删除了。
C:\cuda\bin\cudnn64_5.dll —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin 
C:\cuda\include\cudnn.h —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include 
C:\cuda\lib\x64\cudnn.lib —> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64

查看CUDA版本

nvcc -V
这里写图片描述

测试

需要安装好tensorflow-gpu

source activate tensorflow #(可选,如果在虚拟环境的话)
python
import tensorflow as tf
hello=tf.constant('hello,tensorflow')
sess=tf.Session()
print(sess.run(hello))

这里写图片描述

查看GPU占用

C:\Program Files\NVIDIA Corporation\NVSMI加入环境变量
然后就可以跟Ubuntu一样,在cmd输入:nvidia-smi


Ubuntu16.0.4

Ubuntu装得会早些,Tensorflow版本是1.4.0,要下载的东西跟Windows类似,很多配置步骤也跟WIndows类似。
注:还没安装CUDA和cuDNN的先看最下面的附

安装Anaconda
sudo bash Anaconda3-4.4.0-Linux-x86_64.sh

刷新环境变量
source /etc/profile或者 source ~/.bashrc #(全局的环境变量)

查看conda版本
conda –V

建一个tensorflow环境(可选)
conda create -n tensorflow python=3.6
激活环境(根据上一条可选)
source activate tensorflow

安装tensorflow
注:如果是在Anaconda开辟的环境env里,安装都不用加sudo,如果使用sudo意味使用的是系统默认的python环境(也是Anaconda的),不确定的可以在安装完后pip list看看是否安装成功。

pip install tensorflow-gpu

安装必要的包和工具

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

或者使用(可选)

sudo pip install pillow
sudo pip install lxml
sudo pip install jupyter
sudo pip install matplotlib

如果要使用coco的api(可选)

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make
cp -r pycocotools <path_to_tensorflow>/models/research/

Protobuf编译

# From tensorflow/models/research/
protoc object_detection/protos/*.proto --python_out=.

加入环境变量

vim ~/.bashrc
export PYTHONPATH=$PYTHONPATH:'/home/ai902/Tensorflow/models/research':'/home/ai902/Tensorflow/models/research/slim'

测试

  • python object_detection/builders/model_builder_test.py
  • 从navigator里面安装启动jupyter notebook,运行例程

附:CUDA和cuDNN安装

这里可以看显卡的算力:https://developer.nvidia.com/cuda-gpus
当时用的是CUDA8.0和cuDNN6.0,显卡是1080Ti

安装CUDA

sudo sh cuda_8.0.61_375.26_linux.run  # 安装的cuda在/usr/local/cuda下面

注意:安装显卡驱动的时候选择no!!!

安装cuDNN(也可以用.deb文件安装)

cd /usr/local/cuda # cuDNN放在这个目录下解压
sudo tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

添加环境变量,将以下代码放入~/.bashrc文件保存后source ~/.bashrc

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

测试

source activate tensorflow #(可选,如果在虚拟环境的话)
python
import tensorflow as tf
hello=tf.constant('hello,tensorflow')
sess=tf.Session()
print(sess.run(hello))

猜你喜欢

转载自blog.csdn.net/xinyu3307/article/details/79497333