segmap的编译过程

Segmap编译过程

  • 一、tensorflow1.8安装
    • 1.准备工作
      • 1)下载cuda、cudnn
    • 2.安装
      • 1)更改显卡驱动
      • 2)安装cuda9.0
      • 3)安装cudnn
      • 4)安装bazel
      • 5)编译Tensorflow
    • 可能出现的错误
  • 二、编译segmap

参考:
https://blog.csdn.net/king_giji/article/details/86530564
https://blog.csdn.net/ziliwangmoe/article/details/84373222

一、tensorflow1.8安装

1.准备工作

1)下载cuda、cudnn

tensorflow-gpu版本对应关系:
segmap的编译过程_第1张图片
1.cuda
下载地址
选择9.0
segmap的编译过程_第2张图片segmap的编译过程_第3张图片
对照图片选择,下载列表对应的选择第一个Download为cuda9.0 ,下面的还有4个为补丁,全部下载
2.cudnn
下载地址
选择Download cuDNN
选择后如果没有账号请创建账号,如果有账号请登录,然后勾选用户协议
然后下载对应的版本文件
segmap的编译过程_第4张图片segmap的编译过程_第5张图片

2.安装

1)更改显卡驱动

打开ubuntu“软件与更新”-“附加驱动”,将驱动更改为nvidia驱动后重启
segmap的编译过程_第6张图片

2)安装cuda9.0

  1. 对gcc和g++进行降级处理
	###1. 安装gcc和g++ 4.8版本
	sudo apt-get install gcc-4.8
	sudo apt-get install g++-4.8
	###2.更改引用
		###1. 进入/usr/bin
		cd /usr/bin
		###2. 备份
		sudo mv gcc gcc.bak
		sudo mv g++ g++.bak
		###3. 重新创建软链
		 sudo ln -s gcc-4.8 gcc
	     sudo ln -s g++-4.8 g++
  1. 安装cuda_9.0.176_384.81_linux.run
sudo sh cuda_9.1.85_387.26_linux.run
###按照它的提示选择输入 accept  | y
###因为我们更改已经安装了NVIDIA驱动,所以在是否安装驱动的选项时选择no,其他的选项全部选择yes
###安装完成后会提示nvidia-driver没有安装,其他的安装完成
###waring警告是告诉你如何安装上它的nvidia驱动
  1. 安装补丁
   sudo sh cuda_9.0.176.1_linux.run
   sudo sh cuda_9.0.176.2_linux.run
   sudo sh cuda_9.0.176.3_linux.run
   sudo sh cuda_9.0.176.4_linux.run
  1. 添加环境变量
###cuda-x.x 请按照自己安装的版本实际环境更改
echo 'export PATH=/usr/local/cuda-x.x/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-x.x/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
###更新配置
source ~/.bashrc

3)安装cudnn

  1. 解压cudnn-9.0-linux-x64-v7.tgz
	tar -zxvf cudnn-9.1-linux-x64-v7.tgz
  1. 复制到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   
	sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

4)安装bazel

注意bazel用最新的版本会有问题。这里使用16.1。
下载安装文件:https://pan.baidu.com/s/1PbXNemZjaM-KByTcmNpC6w 提取码: f6mc
下载后使用命令进行安装

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python
chmod +x bazel-0.16.1-installer-linux-x86_64.sh
./bazel-0.16.1-installer-linux-x86_64.sh --user
gedit ~/.bashrc
export PATH="$PATH:$HOME/bin"

5)编译Tensorflow

下载tensorflow1.8的源码:https://pan.baidu.com/s/1VdFvx4OOPlP3_I3DJJQ57Q 提取码: h5j9
在解压出来的文件夹中:

sudo apt-get install python-numpy python-dev python-pip python-wheel python-virtualenv
virtualenv ~/segmappyenv
source ~/segmappyenv/bin/activate
pip install --upgrade pip
sudo pip install six numpy wheel mock
pip install catkin_pkg empy pyyaml
./configure
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.8.0-py2-none-any.whl      #或去掉sudo,并修改.whl文件名称为目标目录下自己生成的.whl名称

./configure执行后,会被问很多问题,只用在问否使用cuda的时候选y,其他都回车,采用默认选项
bazel build开始编译,编译时间很长,中间如果报python - ImportError: No module named mock - Stack Overflow类似的文集,就用pip安装对应的包。(注:提示缺少enum时,使用pip install enum34安装enum34!!!!)
这里使用virtualenv,把tensorflow装在segmappyenv这个虚拟环境中。

可能出现的错误

virtualenv ~/segmappyenv

在这里插入图片描述

解决:pip install --upgrade pip后重启终端
在这里插入图片描述
解决:https://blog.csdn.net/zong596568821xp/article/details/80410416

二、编译segmap

保持在segmappyenv状态中:命令行前面有(segmappyenv)符号。

$ sudo apt-get install python-wstool doxygen dh-autoreconf
$ mkdir -p ~/segmap_ws/src
$ cd ~/segmap_ws
$ catkin init
$ catkin config --merge-devel
$ catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
$ cd src
$ git clone https://github.com/ethz-asl/segmap.git
$ wstool init
$ wstool merge segmap/dependencies.rosinstall
$ wstool update
$ cd ~/segmap_ws
$ catkin build tensorflow_ros_cpp --cmake-args -DFORCE_TF_PIP_SEARCH="ON"
$ cd ~/segmap_ws
$ catkin build segmapper

可能报错
1.
catkin init
提示“catkin: command not found”
解决方法:https://blog.csdn.net/otter1010/article/details/90742300 注意ros版本

你可能感兴趣的:(segmap的编译过程)