使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境

由于ubuntu16.04+ROS-kinetic使用的是python2,所以如果直接安装anaconda的话会出现ROS包不能用的情况。所以这篇文章是解决这个问题的办法,此外,使用conda安装TensorFlow-GPU会自动安装cudnn和cudatoolkit这两个装起来很烦人的东西,可以说非常方便了。装错了卸载的时候也只需要把bashrc里的内容删除,并删除home下的anaconda3目录就行了,干净卫生。
第一步,下载anaconda。

《使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境》 选择3.7的版本

为该文件添加可执行后,直接使用sh运行。
安装目录选择默认的就行了,如有需要也可以自行更改。
然后问你是否要添加环境变量,这个会配置在bashrc里,选择是,然后一会儿修改。
最后会问你要不要装vscode。

完成之后,打开terminal,输入python,会发现python的版本已经由2变3了,然后ros相关的内容都已经不能正常使用了。
所以打开bashrc,将anaconda添加的内容全部注释掉.这样一来新开一个terminal之后就又回到了没有安装前的状态。可以正常使用ROS和Python2.等到需要用anaconda环境的时候再把注释解除,这个办法是ROSwiki上提供的,显然不是非常方便,还需要改进。

bashrc在home下,使用ctrl+h就能显示出来编辑。

在刚刚注释掉的内容中发现这句话

 if [ -f "/home/tom/anaconda3/etc/profile.d/conda.sh" ]; then
         . "/home/tom/anaconda3/etc/profile.d/conda.sh"
          CONDA_CHANGEPS1=false conda activate base

我们把它改造一下。

alias condapy3='. /home/tom/anaconda3/etc/profile.d/conda.sh && conda activate tensorflow_gpuenv'

其中tensorflow_gpuenv环境我们还没有建立,可以先改成base,conda activate <环境名字>就是激活这个环境用的,但没有前面那句就无法使用。
要建立这个环境,首先我把注释解除,检查一下是不是进入了Python3,是的话ctrl+D退出Python。

conda create -n tensorflow_gpuenv tensorflow-gpu
conda activate tensorflow_gpuenv

如果不需要gpu的话就直接把后面的-gpu去掉就行了。
如果嫌速度太慢的话就换清华的channel,目前还是能用的,但是网上有些文章说它挂了,现在应该是复活了。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

这样以来不但tensorflow-gpu安装好了,就连cudnn和cudatoolkit也一并好了,用pip的话就很不方便了。
安装好之后,bashrc里注释掉刚刚那些内容,把刚刚提到的alias condapy3=’. /home/tom/anaconda3/etc/profile.d/conda.sh && conda activate tensorflow_gpuenv’这句话加上去。
新开一个terminal,输入我们自己设置的condapy3,当然这个其实你起什么名字都可以。

《使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境》 image.png

《使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境》 image.png

《使用anaconda在ubuntu16.04下安装TensorFlow-GPU,同时保留原本的ROS环境》 image.png

然后就可以正常使用了,新开一个terminal还是原来的Python2,想使用tensorflow环境的话就在终端输入刚刚的condapy3.如果想在anaconda环境下使用ros包的话,那就新建一个Python2的环境,再用pip安装那些ros包。同理,其他无法用conda安装的包也都可以试着用pip,反过来pip无法安装的包用conda说不定就能安装。但tensorflow-gpu一定要用conda安装。
如果安装完成后用测试代码发现报错,比如

Error: CUDA driver version is insufficient for CUDA runtime version
问题极有可能出在显卡驱动上,可能有不止一个显卡驱动,这个时候建议手动重新安装显卡驱动。

    原文作者:DIO哒
    原文地址: https://www.jianshu.com/p/4e437e25480b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞