ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

可以参考nvidia官网进行tensorflow安装,https://www.nvidia.com/en-us/data-center/gpu-accelerated-applications/tensorflow/

1.安装GPU版本的tensorlfow时,需确定显卡型号,并安装匹配的显卡驱动,先输入
nvidia-smi 查看显卡型号,如果第一列有Driver version证明已经安装驱动
ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

再去www.nvidia.com/Download/index.aspx网站可以查询和下载显卡驱动
ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置
点击search,下载NVIDIA-Linux-x86_64-384.125.run
2、安装显卡驱动
linux下切换到NVIDIA-Linux-x86_64-384.125.run的目录,运行:bash NVIDIA-Linux-x86_64-384.125.run
运行完成后再次查看显卡型号,是否变化。如果安装遇到提示:error……X server 时,
#重启电脑并进入命令行模式(ctrl alter F6),禁用x server,
输入:init 3

3、下载cuda,https://developer.nvidia.com/cuda-downloads?,选择runfile[local]版本
切换到文件的存储目录,运行 bash ………….run,安装完成后

进入用户的根目录

cd  home  或 cd  root


 然后打开.bashrc若不存在则新建.bashrc文件

vim   .bashrc
若cuda安装在usr/local目录下,输入 
export CUDA_HOME=/usr/local/cuda-9.0
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib:${LD_LIBRARY_PATH}"

最后执行

source ~/.bashrc

使得设置生效,"~"表示当前根目录,运行:nvcc -V查看版本,安装成功

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置
4、cudnn下载后,

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置
再将解压后cudnn目录下的cuda子目录对应的lib和include文件拷贝到之前安装的cuda相应lib和include目录下

sudo tar -xzvf cudnn**.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

也可以但在deb格式文件,deb格式是在ubuntu专属软件安装格式

5、安装anaconda3, 官网下载很慢,去清华镜像下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

anaconda包和conda包的安装介绍可以参考http://python.jobbole.com/86236/,该文介绍详细。切换到linux目录下,运行:run Anaconda3-5.1.0-Linux-x86_64.sh,根据提示输入yes和enter,安装完成后,  输入canda -V查看是否安装成功及当前版本,conda list查看安装了哪些包,可以参考https://www.cnblogs.com/swje/p/7642929.html,输入python,显示如下结果:
ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置
证明安装成功。如果没有成功,很可能是anaconda没有添加到环境变量里面(安装时默认不添加),所以需修改.bashrc文件,

export PATH="/home/zhongjia/anaconda3/bin:$PATH"

并source  ~/ .bashrc,重新加载环境变量

注意,如果不安装anaconda,仅仅用pip install conda时,安装成功后是不能使用conda -V命令的,

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

即,pip安装的conda不能单独作为一个应用程序,安装Anaconda后是可以利用工具/命令conda来进行package和environment的管理的。卸载conda时可以看到,默认情况下此时安装的conda是在linux系统自带的python2.7/package下面的

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

conda 可以创建虚拟环境,假设我们需要安装Python 3.4,此时,我们需要做的操作如下:

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

用户安装的不同python环境都会被放在目录~/anaconda/envs下,可以在命令中运行conda info -e查看已安装的环境,当前被**的环境会显示有一个星号或者括号。

说明:有些用户可能经常使用python 3.4环境,因此直接把~/anaconda/envs/python34下面的bin或者Scripts加入PATH,去除anaconda对应的那个bin目录。这个办法,怎么说呢,也是可以的,但总觉得不是那么elegant……

如果直接按上面说的这么改PATH,你会发现conda命令又找不到了(当然找不到啦,因为conda在~/anaconda/bin里呢),这时候怎么办呢?方法有二:1. 显式地给出conda的绝对地址 2. 在python34环境中也安装conda工具(推荐)。

6、下载tensorflow,  https://github.com/tensorflow/tensorflow/tree/r1.6,
安装tensorflow有两种方法:一是在下载tensorflow文件的目录下输入:pip install xxxx.whl即可安装下载好的版本
二是先利用conda先创建虚拟环境,使用 conda create -n your_env_name python=X.X(2.7、3.6等)或者conda create --name yourname python=xx 命令创建python版本为X.X、名字为your_env_name的虚拟环境,如使用conda create -n tensorflow python=3.6**虚拟环境使用source active tensorflow 退出虚拟环境使用source deactivate tensorflow,在**后的虚拟环境下安装tensorflow:pip install tensorflow-gpu==1.6
安装完成后,如果每次使用anaconda的虚拟环境,cd到anaconda的envs目录下,我的是root/anaconda3/envs,终端输入
python
import tensorflow
验证,如果没有报错,证明安装成功.这个时候就可以在虚拟环境下调用python和tensorflow.
但是你编写tensorflow代码时,可能会遇到 AttributeError: 'module' object has no attribute 'placeholder'的错误,这是因为你的虚拟环境下有名叫tensorflow的文件夹(tensorflow模块与你的虚拟环境名称同名),而你import是想导入tensorflow script,导致导入了一个文件目录,而不是脚步文件。所以解决办法是将给文件夹重命名为其他名字。 输入conda info -e 可以看到自己的anconda3基本环境和虚拟环境

ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置
分别为base环境和虚拟环境环境,当调用source activate 和source activate py36tf则可以在base环境和虚拟环境下来回切换。当需要重新为配置tensorflow和python的虚拟环境时,输入:conda remove -n tensorflow --all删除虚拟所有tensorflow(虚拟环境名称)的东西,再次回到envs环境下重新输入conda creat -n  虚拟环境名称(如py36tf) python=3.6  ,也可以在创建虚拟环境py36tf的同时默认安装一下python的计算库conda create -n py36tf python=3.6 numpy scipy matplotlib -y,不设置以上参数,在安装时也会提示是否安装依赖库。如果想单独安装python库,可以conda creat -n py36tf python=3.6, 然后输入
conda install -n py36tf  numpy scipy,则在虚拟环境py36tf下安装需要的库numpy和scipy,不指定虚拟环境名称时,则默认在当前**的环境下安装numpy和scipy 
创建完成虚拟环境后,使用source activate py36tf**虚拟环境py36tf,这个时候cd ..可以在虚拟环境下切换到你下载好的tensorflow文件目录下去,我自己下载的存在opt/tf_nightly_gpu-1.head-cp36-cp36m-linux_x86_64.whl, 使用pip install tf_nightly_gpu-1.head-cp36-cp36m-linux_x86_64.whl 安装tensorflow, 这就实现了在虚拟环境下利用自己已经下载的tensorflow包进行安装,而不是anconda 自己去下载。在**虚拟环境下使用conda list 可以看到自己安装的python 和tensorflow,非虚拟环境下看不到
ubuntu16.04+anaconda3+CUDA9.0+cudnn7.0.5+tensorflow1.6+python3.6环境配置

使用虚拟环境编写tensorflow程序时,需要先source activate py36tf, 退出时需要source deactivate 

查看tensorflow版本也可以输入命令:

import tensorflow as tf

print(tf.__version__)

   输入 python -m pip list可以列出安装的所有模块                                                     

其实本文用可以同时安装GPU版本的tensorflow和CPU版本的tensorflow,一个在conda创建虚拟环境中安装GPU版本tensorflow,一个在anaconda本地安装CPU版本的tensorflow。经实验,通过该方法可以同时安装两个版本tensorflow.
安装完成每一步都需要修改环境变量,具体可以参考https://www.linuxidc.com/Linux/2016-09/135476.htm和https://www.linuxidc.com/Linux/2016-09/135477.htm
我是修改的root目录下面.bashrc文件,home目录root目录下的.bashrc文件通常被隐藏,直接进入到home和root根目录下vim  .bashrc即可,如设置cuda的环境变量,输入
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
则每次启动系统时,环境变量自动加载