经过了几天的环境搭建,踩了不少坑,将经验分享一下~
#使用apt方法安装:
sudo apt-get remove --purge nvidia*
#使用.run文件安装:
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
sudo gedit /etc/modprobe.d/blacklist.conf
在末尾添加:
blacklist nouveau
然后执行:sudo update-initramfs -u
重启后执行:lsmod | grep nouveau
。如果没有屏幕输出,说明禁用nouveau成功。
确定自己所需要安装的驱动版本:
ubuntu-drivers devices
可以看到有目前可以安装的驱动:
driver : nvidia-340 - distro non-free
driver : nvidia-driver-390 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
安装390版本驱动:
sudo apt install nvidia-driver-390
安装过程中选择Accept->Continue installation->sign the kernel module(为内核模块签名)?选择是->使用已有的密钥给模块签名还是重新生成?选重新生成密钥->是否删除已生成的密钥文件?选择否->安装完成。完成之后重启。
检查NVIDIA驱动是否安装成功:
nvidia-smi
若显示驱动版本等信息则安装成功。
下载地址:https://developer.nvidia.com/cuda-zone
注意:tensorflow对CUDA的版本有要求,见https://github.com/mind/wheels
cd到所下载的run文件路径,然后执行:
sudo sh cuda_9.0xxx.run --no-opengl-libs #根据自己的包名称替换代码
按照提示安装即可,注意,不要安装CUDA内的NVIDIA驱动!
依次输入:
accept #同意安装
n #不安装NVIDIA驱动
y #安装CUDA Toolkit
Enter #安装到默认目录
y #创建安装目录的软链接
n #不复制Samples,因为在安装目录下有/samples
安装完成后需要配置环境变量
cd
sudo gedit .bashrc
添加以下路径:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后执行:
source .bashrc
下载地址:https://developer.nvidia.com/cudnn
简单注册,需要做个调查。
下载完成后,cd进入下载目录,并执行以下命令:
tar -xzvf cudnn-9.0-linux-x64-v7.tgz
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
下载地址:https://www.anaconda.com/download/
根据系统选择对应的安装包(个人建议安装python3.6版本的)
下载完成后,cd到存放目录并执行:
bash Anaconda3-xxxx.sh #xxxx此处对应自己的包
按照提示安装即可,安装路径可以选择默认。
安装完之后执行:
source ~/.bashrc
终端执行:conda list
若提示命令无法找到,则修改.profile文件:
sudo gedit ~/.profile
添加以下几行:
if [ -d "$HOME/anaconda3/bin" ] ; then
PATH="$HOME/anaconda3/bin:$PATH"
fi
使生效:
source .profile
conda create -n tensorflow pip python=3.6 #python版本根据要安装的tensorflow选择
激活环境:
source activate tensorflow
安装tensorflow:
pip install --ignore-installed --upgrade tfBinaryURL
注:这里的tfBinaryURL为tensorflow提供的不同版本的包。
举个栗子:
(tensorflow)$ pip install --ignore-installed --upgrade \
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.8.0-cp34-cp34m-linux_x86_64.whl
终端输入:python
然后输入以下代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
注:若报错ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
则可能为安装的CUDA版本与tensorflow不匹配或者环境变量未配置好。
激活tensorflow环境后安装jupyter:
pip install jupyter
安装ipykernel:
pip install ipykernel
为jupyter添加tensorflow环境:
python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
–name后的tensorflow为环境名,–display-name为jupyter中显示的kernel名。具体见http://ipython.readthedocs.io/en/stable/install/kernel_install.html
参考文献:
https://blog.csdn.net/cosmoshua/article/details/76644029