以下是我安装ananconda+tensorflow-gpu1.8+keral-gpu的方法,过程较为复杂,走了不少弯路,但最后成功了,浪费了不少时间。
安装完之后,在网上看到这样一篇文章https://blog.csdn.net/weixin_39954229/article/details/79961172
告诉我安装ananconda+tensorflow-gpu不需要事先安装CUDA 和CUDNN ,真是欲哭无泪……。但是该方法我没有尝试,大家可以去尝试。
以下全当是我复杂安装历程的记录吧,如果大家用的着的话,可以参考。
目录
1、卸载之前安装的NVIDIA 驱动和CUDA 工具箱----------------如果有的话
4、验证系统已经安装了正确的 kernel headers 和开发包
一、安装CUDA 9.0工具箱
安装前的准备工作:
1、卸载之前安装的NVIDIA 驱动和CUDA 工具箱----------------如果有的话
卸载CUDA 工具箱:
$ sudo apt-get --purge remove "*cublas*" "cuda*"
卸载NVIDIA 驱动器:
(1)使用apt方法安装的驱动卸载:
$ sudo apt-get --purge remove "*nvidia*"
(2)使用.run文件安装的驱动卸载:
比如卸载之前安装的 NVIDIA-Linux-x86_64-384.59.run 驱动
$ sudo chmod +x *.run
$ sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
2、禁用nouveau驱动
$ sudo gedit /etc/modprobe.d/blacklist.conf
在末尾添加:
blacklist nouveau
然后执行:
$ sudo update-initramfs -u
重启后执行:
$ lsmod | grep nouveau
如果没有屏幕输出,说明禁用nouveau成功。
3、降级gcc
由于Cuda-9.0
只支持gcc-6.0
以下的版本,而Ubuntu18.04系统默认安装的gcc-7.3
版本(可以在终端输入gcc --version
查看系统安装的gcc版本),所以首先需要降级为gcc-5
版本。
- 首先需要安装
gcc-5
在终端输入:
sudo apt install gcc-5
sudo apt install g++-5
- 链接至
gcc-5
版本
在终端输入:
cd /usr/bin
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc
sudo mv g++ g++.bak
sudo ln -s g++-5 g++
通过gcc --version
查看系统的gcc版本是否已更改
4、验证系统已经安装了正确的 kernel headers 和开发包
查看您的Linux系统目前正在运行的内核(Kernel)版本
$ uname -r
安装同系统内核版本一致的kernel headers 和开发包
$ sudo apt-get install linux-headers-$(uname -r)
5、下载NVIDIA CUDA 9.0 工具包
5-1、从官网下载cuda-9.0的deb安装包文件, cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb和四个补丁文件
Step1:切换到下载好的文件目录,并安装meta-data
$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64.deb
Step2: 安装CUDA的GPG Public Key
$ sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
Step3:更新APT源
$ sudo apt-get update
Step4:安装CUDA
$ sudo apt-get install cuda
Step5:安装补丁
$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update_1.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1704-9-0-176-local-patch-4_1.0-1_amd64.deb
5-2 、设置环境变量
在 ~/.bashrc中设置环境变量:
$ gedit ~/.bashrc
打开.bashrc文件,在文件末尾添加:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
运行如下命令使得环境变量生效:
$ source ~/.bashrc
测试环境变量是否生效,可以运行一下nvidia的查看CUDA版本的命令:
$ nvcc --version
测试CUDA:
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
cd ../bandwidthTest
sudo make
./bandwidthTest
如果测试成功,则结果显示为:
Result = PASS
二、安装CUDNN 7.4
注册NVIDIA并下载cuDNN包:https://developer.nvidia.com/rdp/cudnn-archive
下载 cuDNN Runtime Library for Ubuntu16.04 (Deb);
cuDNN Developer Library for Ubuntu16.04 (Deb);
cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb)
下载的包如下面安装命令所示:
$ sudo dpkg -i libcudnn7_7.4.2.24-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda9.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda9.0_amd64.deb
测试cuDNN:
cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
看到Test passed即可。
三.安装Anaconda
进入anaconda
安装包所在目录,打开终端,根据版本输入安装命令:
$ bash Anaconda3-5.2.0-Linux-x86_64.sh
回车后,是许可文件,接收许可,anaconda
将安装在~/anaconda
目录下,直接回车就好。
最后会询问是否把anaconda
的bin
添加到用户的环境变量中,选择yes
。
安装成功以后,在终端输入
source ~/.bashrc
让.bashrc
中添加的路径生效。
检查是否安装成功:
终端执行:conda list
若提示命令无法找到,则请手动完成环境变量的修改:
-
首先打开环境变量的文件
gedit ~/.bashrc
-
然后在文件末尾加入 anaconda3 的路径
export PATH=/home/你的路径/anaconda3/bin:$PATH
-
最后使我们的改动生效
source ~/.bashrc
这样,我们在terminal
中输入python
就会默认打开anaconda3
里默认的python
了。
四、安装tensorflow-gpu
1.创建python-3.6版本的tensorflow环境
conda create -n tensorflow-gpu python=3.6
2.激活tensorflow环境
source activate tensorflow-gpu
3.通过pip安装gpu版的tensorflow-gpu
pip install tensorflow-gpu==1.8.0
4.测试tensorflow-gpu是否安装成功
终端激活tensorflow-gpu环境
$ source activate tensorflow-gpu
$ python
接着输入:
import tensorflow as tf
# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))
若成功运行Gpu则在终端会有相应的gpu提示提示,例如:/gpu: 0 如下图:
五、在anaconda环境下安装gpu版本的keras
终端输入
conda install keras-gpu
测试anaconda环境下的keras是否安装成功
终端输入:
python
import keras
如果显示:
出现Using Tensorflow backend,则说明安装成功。
注:如果在tensorflow环境下的spyder中输入
import keras
显示 “ ModuleNotFoundError: No module named 'keras”,则需要预先激活tensorflow 环境,然后再利用conda 安装keras。
三、tensorflow环境下安装spyder
Spyder 是Anaconda自带的集成开发环境(IDE),可以在Spyder中进行tensorflow的开发。
1)在终端中激活tensorflow环境
source activate tensorflow
2)在tensorflow环境下输入下列指令安装spyder
conda install spyder
3)测试tensorflow环境下的spyder是否安装成功
终端输入
spyder
打开spyder集成开发环境,界面如下:
在 Ipython console 中输入
import tensorflow as tf
如果没有提示 “ ModuleNotFoundError: No module named 'tensorflow”,则说明tensorflow环境下的spyder安装成功,接下来就可以在Spyder中进行tensorflow的开发。
六、参考文献:
https://www.jianshu.com/p/288c536a1092
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions
https://blog.csdn.net/youngping/article/details/84207234#CUDA90_148
https://blog.csdn.net/ShellDawn/article/details/80274534
https://blog.csdn.net/JOKER_Or/article/details/80333253#%E5%AE%89%E8%A3%85tensorflow