由于最近刚看了rcnn,faster_rcnn,mask_rcnn的原文,想着做一下实验,所以就如题,在ubuntu下安装TensorFlow的目标识别API!!!!在此之前很少用Ubuntu,所以犯的错很齐全

环境配置参考博客链接
对象检测API参考的博客
主要参照上面的两个博客进行,但是当然会有一些突发问题,补充整理在下。

python3、cuda9.0、cudnn7.1.3、TensorFlow-gpu==1.9

确定硬件软件版本信息

1 gcc --version  查看GCC版本号 gcc (Ubuntu 7.0 -4ubuntu8) 7.0
2 g++ --version  查看G++版本号 g++ (Ubuntu 7.0-4ubuntu8) 7.0
3 nvidia-smi

如果nvidia-smi命令语句报错 装nvidia驱动! 我装的是nvidia-390

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-390

然后再次测试nvidia-smi,则会看到相应的版本信息!!!

gcc/g++降级 4.8(ubuntu16默认安装7.0版本)

4 sudo apt-get install gcc-4.8
5 sudo apt-get install g++-4.8

链接gcc4.8 g++4.8版本

6 cd /usr/bin
7 ls -l gcc*#会发现链接的还是7.0版本
8 sudo mv gcc gcc.bak #备份
9 sudo ln -s gcc-4.8 gcc #重新链接
10 sudo mv g++ g++.bak
11 sudo ln -s g++-4.8 g++
12 gcc -v g++ -v #查看版本

安装python3.5

sudo apt-get install python3

安装cuda

CUDA 到CUDA9.0 下载页面下载runfile安装,Tensorflow官网给的暂时还是9.0版本,新版本可以尝试一下.稳妥起见,这里选择9.0。
cuda9.0下载地址
下载cuda9.0安装包和4个补丁如下图
【目标检测_2】Ubuntu 16.04下安装TensorFlow 目标检测 API(对象检测API)-LMLPHP
【目标检测_2】Ubuntu 16.04下安装TensorFlow 目标检测 API(对象检测API)-LMLPHP
gcc、g++版本确认后执行下面操作
#一定要和自己下载文件名名称一致 需要一直按回车 因为需要你读说明~~一直按着直到100%

sh cuda_9.0.176_384.81_linux.run --override#注意cuda版本命名是否一致
如果有安装了显卡驱动的,注意在提问是否安装显卡驱动时选择no,其他 选择默认路径或者yes即可。!!!!在此之前已经安装了驱动 一定要选no
sh cuda_9.0.176.1_linux.run
sh cuda_9.0.176.2_linux.run
sh cuda_9.0.176.3_linux.run
sh cuda_9.0.176.4_linux.run

添加环境变量

sudo gedit ~/.bashrc
//////////////把下面两句加入bashrc中
export PATH=/usr/local/cuda-9.0/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存关闭后,执行

source ~/.bashrc

cudnn7.1.3安装

cuDNN 到cudnn官网 下载即可,这里注意要选择对应CUDA9.0的软件包, 下载完毕后,切到默认的Downloads文件夹,可以看到 cudnn-9.0-linux-x64-v7.1.tgz 压缩包 先解压,后复制到CUDA安装文件夹里面.

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*

TensorFlow1.9安装

pip install tensorflow-gpu==1.9

验证

python3
import tensorflow af tf

模型下载

先下载模型 github上有开源信息:下载地址
包括图像分类、检测、自然语言处理NLP、视频预测、图像理解等等

解压 并移到tensorflow文件夹下

  1. 查询tensorflow安装路径
python3
import tensorflow as tf
tf.__path__
  1. 移动文件夹
    假设你的用户目录是/home/yangxin,也就是你Crtl+Alt+T打开终端时,是/home/yangxin,如果你需要移动/home/yangxin/download目录下的aaa文件到/home/development目录下的操作如下:
cd  /home/yangxin/download
sudo mv aaa /home/development

安装依赖项

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

编译protos库

进入tensorflow/models-master/research
你的可能是models

protoc object_detection/protos/*.proto --python_out=.

报错1:

“ssd” is not defined
expected “required” …
【目标检测_2】Ubuntu 16.04下安装TensorFlow 目标检测 API(对象检测API)-LMLPHP
解决办法:更新protoc

$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ git clone https://github.com/google/protobuf.git
$ cd protobuf
$ git submodule update --init --recursive
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.

添加环境变量

gedit ~/.bashrc
添加以下到末尾
pwd:~tensorflow/**models-master**自己补全
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

保存退出 执行

source ~/.bashrc

测试

进入tensorflow/models/research/执行如下

python object_detection/builders/model_builder_test.py

报错2
No module named ‘nets’
【目标检测_2】Ubuntu 16.04下安装TensorFlow 目标检测 API(对象检测API)-LMLPHP
解决办法:
将slim文件夹下面的 setup.py build 和install一下

python setup.py build
python setup.py install

再次测试!!!!就看到了曙光ok !!!!!!
终于成功了 啊 啊啊啊啊 啊啊啊

12-10 21:06