这近一个星期一直在搭建Ubuntu16.04下的tensorflow1.4-GPU环境,但网上的教程各有不同,始终有问题,今天可能碰巧搭建好了,就记录下流程。
我的硬件设备,CPU:I5-7500,RAM:8G, GPU: NVIDIA 1050卡。
首先声明我装的是双系统,WIN10和Ubuntu16.04.在装Ubuntu时主要参考的是这篇博客。
但安装过程中出了问题,安装时提示“机器以uefi模式启动了安装器,但是似乎已经存在使用bios兼容模式的系统。如果继续以uefi模式安装debian,可能非常难以重启进入其他bios模式的系统。如果希望以uefi模式安装且无意再启动现有的系统,此处有强惜制选项。如果要保持现有系统可启动,不要选择强制uefi安装”。后来在网上查了下,发现是我装win10时用的是兼容模式,虽然网上给出了一些办法,但后来果断重装了Win10,采用的是UEFI+GPT模式。参考的度娘。重装Win10后再装Ubuntu就没有问题了。
注意:Ubuntu在安装nividia驱动前要先将BIOS中的的Secure Boot设置为Disabled。
注意:Ubuntu在安装nividia驱动前要先将BIOS中的的Secure Boot设置为Disabled。
注意:Ubuntu在安装nividia驱动前要先将BIOS中的的Secure Boot设置为Disabled。
装完系统后更新的更新,删除的删除。接着就准备装Nvidia的驱动了。最开始直接通过软件更新中的附加驱动更新的,更新后无限登陆,无法进入系统。后来在网上看了看多教程,主要是通过以下几个步骤:
1.首先自己去NVIDIA官网根据自己的硬件设备下载
下载完后记得放在哪里。
2.禁用nouveau驱动,打开终端输入:
sudo gedit /etc/modprobe.d/blacklist.conf
在弹出的文本的最后加上下面两行代码:
blacklist nouveau
options nouveau modeset=0
保存退出后在终端输入:
sudo update-initramfs -u
重启电脑后,再打开终端,输入:
lsmod | grep nouveau
如果屏幕没有输出说明禁用nouveau成功。
3.准备安装nvidia驱动
安装前首先禁用X-Windows服务,输入如下指令:
sudo service lightdm stop
系统执行指令后,图形程序会关闭,请不要紧张,接着按Ctrl + Alt +F1进入命令行界面,输入用户名和密码即可。
首先通过指令cd 打开到你驱动程序所在目录。例如,我的驱动程序放在home下的software文件夹内,驱动被我重命名为nvidia-drive.run,我就输入以下代码:
打开驱动所在文件夹:
cd ./software
接着给驱动赋予执行权限:
sudo chmod +x nvidia-drive.run
开始驱动安装:(no-opengl-files表示不安装openGL)
sudo ./nvidia-drive.run -no-opengl-files
接着根据提示安装,一般不会有问题,如果有问题就去看看你
BIOS中的的Secure Boot设置为Disabled。
安装完后输入输入指令重启:
reboot
重启后进入系统检查是否装好:
nvidia-smi # 列出GPU信息
nvidia-settings # 若正常弹出对话框表示安装成功
安装完Nvidia驱动后去下载Cuda8和cudnn6
下载完后打开终端,cd 进入软件所在目录开始安装:
sudo sh ./cuda_8.0.61_375.26_linux.run
安装前会有很长一段话,直接按个q键结束,输入accept同意,之前安装过nvidia的驱动,这里询问是否安装驱动时选No,其他的按默认来就行。
安装完后声明环境变量,并写入~/.bashrc的尾部:
sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
然后设置环境变量和动态链接库:
sudo gedit /etc/profile
在末尾加上:
export PATH=/usr/local/cuda/bin:$PATH
保存后,创建链接文件:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在末尾添加:
/usr/local/cuda-8.0/lib64
然后执行指令,生效:
sudo ldconfig
接着cd进入NVIDIA_CUDA-8.0_Samples文件夹,测试cuda的Samples:
cd /home/wz/NVIDIA_CUDA-8.0_Samples
sudo make all -j4
cd ./bin/x86_64/linux/release
sudo ./deviceQuery
显示出一些GPU信息,Result = PASS说明通过。
装完cuda8.0后在装cudnn6
首先解压,解压后cd 进入/usr/local/cuda/lib64解压文件所在根目录:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
接着cd进入lib64目录下删除旧软链接,创建新软链接
cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so libcudnn.so.6
sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6
sudo ln -s libcudnn.so.6 libcudnn.so
至此Nvidia驱动,cuda8,cudnn6安装完成,最后重启下一下电脑。
由于Ubuntu16.04自带有python2.7和python3.5两个版本故不许额外安装python,若需要安装anaconda可忽略此步骤。
Ubuntu16.04默认的是使用python2.7的版本,但我需要用python3.5故需要修改python2.7与3.5的优先级。打开终端输入:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
sudo update-alternatives --config python
最后安装Tensorflow1.4——GPU版本
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.4.1-cp35-cp35m-linux_x86_64.whl
若提示没有安装pip3,按照提示安装下pip3即可。