ubuntu深度学习环境配置踩坑记

安装Ubuntu

装双系统可以参考以下链接,但是还可能会出现后面所述的一些小问题,不妨先看完后面的部分再开始装ubuntu系统。
https://blog.csdn.net/flyyufenfei/article/details/79187656

开机卡死、关机卡死、登陆界面卡死

有集显独显双显卡的笔记本估计都会碰到这个问题。
主要是因为ubuntu不会主动使用英伟达的闭源驱动,这就导致在开机时会出现系统一直等待显卡启动,但是又没有驱动,所以一直互相等待,可以理解为出现了一种类似死锁的情况,所以就一直卡住。

解决方法

临时方案

在刚刚用U盘装完系统需要重启时,在ubuntu和windows的引导界面处,选择ubuntu这一项,按e进入,将quiet splash $vt_handoff ---改成quiet splash $vt_handoff acpi_osi=! acpi=force
我在装ubuntu时直接设置自动登录,这个时候splash $vt_handoff没有太多用(splash $vt_handoff是用来控制开机动画的),所以我直接将splash $vt_handoff也去掉了,只留下quiet acpi_osi=! acpi=force
网上也有方案是用nomodeset,这种方法是只使用核显,我们后续需要用英伟达显卡加速深度学习训练,这种方法不好。
原理大致如下:

quiet
不显示执行的进度。所以拿掉会出现一大堆的指令执行状况,蛮精彩的!
splash
显示开机图样或动画,就是一开始出现ubuntu字眼,下面有几个点逐个亮起来那个画面。拿掉可以节省…大约不到1秒左右…
这两个都与是否进入图形界面无关
$vt_handoff
这东西只有在splash存在时,才会有这个参数,vt_handoff=“vt.handoff=7”;假如在没有splash的状况下,还加入这个参数,那这个参数就是空字串。(请参考/etc/grub.d/10_linux)他的功能是避免splash去占用virtual terminal 7,就是之后图形界面会用到的tty7。

参考 http://tieba.baidu.com/p/3089495495
acpi_osi=!主要是参考的deepin的解决方法,https://bbs.deepin.org/forum.php?mod=viewthread&tid=151387
原文中是写的acpi_osi=! acpi="windows 2009""
经我尝试,将上述的—替换成acpi_osi=! acpi_osi="windows 2009"就可以开机了,主要原理就是欺骗bios,让bios以为这是win7。很无奈,硬件厂商对于linux的支持还不太完善,bios可能认不出来高版本的linux。
只改了这部分开机没问题了,但是会发现无法关机。
别着急,将acpi=force加上去强制关闭显卡驱动就好了。

最终方案

进入系统后输入

sudo gedit /boot/grub/grub.cfg

搜索quiet
ubuntu深度学习环境配置踩坑记_第1张图片
只将第一个quiet splash $vt_handoff ---改为quiet splash $vt_handoff acpi_osi=! acpi=force就行了,后面的不需要改。
但是我把后面的加载启动动画的部分也给去掉了,这个其实无所谓。
这部分也是参考的deepin卡logo的解决教程。
很多关于ubuntu开关机卡死的解决教程是将这三处都改掉,这样好像也没有什么用,还是卡死。
我尝试了很多教程都失败了,这个问题一直困扰了我很久,多次强制关机也对我的笔记本电脑造成了很多伤害。

安装驱动

安装tensorflow对于英伟达显卡驱动版本有要求
ubuntu深度学习环境配置踩坑记_第2张图片
参考 https://blog.csdn.net/qq_27825451/article/details/89082978
若驱动版本不正确,则在运行tensorflow代码时会出现libcudart.so.10.0: cannot open shared object file: No such file or directory的报错。
安装显卡的具体步骤

  1. 先在英伟达驱动网站上下载相应版本显卡对应的驱动 https://www.geforce.cn/drivers
    (加载有点慢,可能需要番 羽樯)
    建议下载到home目录下,便于在进入文本模式后找到驱动文件。
  2. 打开终端,删除旧的驱动:
sudo apt-get purge nvidia*
  1. 禁用自带的 nouveau nvidia驱动
    创建一个文件通过命令 sudo vim /etc/modprobe.d/blacklist-nouveau.conf
    并添加如下内容:
blacklist nouveau
options nouveau modeset=0

再更新一下

sudo update-initramfs -u

重启系统。
再使用命令: lsmod | grep nouveau确认下nouveau是已经被你干掉。

  1. ctrl+alt+F1进入文本模式
    按ctrl+alt+F1进入文本模式,再用sudo service lightdm stop关闭X-Window。
  2. 安装驱动
    sudo ./NVIDIA-Linux-版本号.run –no-opengl-files
  • –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
  • –no-x-check 安装驱动时不检查X服务
  • –no-nouveau-check 安装驱动时不检查nouveau
    后面两个参数可不加。
  1. 重启
    sudo reboot

参考 https://blog.csdn.net/u014682691/article/details/80605201
https://blog.csdn.net/sinat_23853639/article/details/81771692

安装anaconda和pip并换源

安装

清华的anaconda镜像站(截至今日2019/5/3,清华的anaconda镜像即将关闭,链接入口被隐藏了,下面这个链接还进得去)
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
不保证在您看到这篇博客时该镜像有效。
ubuntu深度学习环境配置踩坑记_第3张图片
下载后直接使用bash Anaconda3-5.2.0-Linux-x86_64.sh安装即可。
pip直接sudo apt-get install python-pip安装即可。

换源

conda的清华源可能不太靠谱,中科大的源如下

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

pip换源:
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

安装cuda和cudnn

tensorflow,cuda,cudnn版本对应表 https://www.tensorflow.org/install/source#tested_source_configurations

cuda历史版本集:https://developer.nvidia.com/cuda-toolkit-archive
下载所需tensorflow和pytorch的版本所对应的cuda版本。
ubuntu深度学习环境配置踩坑记_第4张图片
下载对应版本,打开终端,输入提示的命令就可以安装了。
在 https://developer.nvidia.com/cudnn 下载cudnn
具体可以参考 https://zhuanlan.zhihu.com/p/35454312
这部分没有太多坑,我就不赘述了。

安装tensorflow和pytorch

tensorflow

个人感觉conda需要整理环境而且中科大的源有点慢,所以我都是用pip安装的。
在下载安装好了cuda以及cudnn之后,应该是可以直接安装tensorflow和pytorch的不需要额外的配置。
tensorflow
直接 pip install tensorflow
利用如下代码进行验证

import tensorflow as tf
hello=tf.constant('Hello World!')
sess=tf.Session()
print(sess.run(hello))

如果在sess处爆出libcudart.so.10.0: cannot open shared object file: No such file or directory的错误很有可能就是驱动的版本不对。
按照上面的方法更新驱动后,首先确认/etc/profile中的路径包含了cuda8.0的安装路径及相应的库文件

export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64

cuda的版本需要对应更改一下。
输入source /etc/profile使配置文件生效,再次执行。

pytorch

在 https://pytorch.org/get-started/locally/ 上获得安装命令。(可能需要番*羽 * 樯)
ubuntu深度学习环境配置踩坑记_第5张图片
直接安装

最后的最后

懂的自然懂,https://github.com/erguotou520/electron-ssr
按照FAQ里面的建议到 https://gist.github.com/jonathanpmartins/2510f38abee1e65c6d92 中安装libsodium就可以用了。

你可能感兴趣的:(机器学习,Ubuntu)