Ubuntu 16.04 下机器学习和人工智能的环境安装(较详尽)

为什么用Ubuntu?

        ubuntu是目前最为流行的linux的发行版,安装简单,可视化,傻瓜化。目前的相关社区也比较完善,网上资料丰富,是新手上手linux环境下开发比较不错的一个版本。

        ubuntu目前一般每隔两年会发行一版LTS版本,即长周期支持版,往往在4月份发布。普通版本一般支持18个月,而LTS能够支持三年以上

        目前最新的版本是18.04LTS,但是目前还比较新,所以我还是用16.04LTS为主。

安装系统

        先到ubuntu的官网,也可以搜索引擎中搜索,ubuntu历史版本中找到ubuntu16.04,下载iso文件(没必要去踩别的坑)。使用软碟通或者rufus(超级棒的一款免费软件,被作者的免费精神简直感动到哭)制作U盘启动盘。

        设置电脑的BIOS,U盘启动安装。安装过程中还是比较傻瓜式的。

        其中关于硬盘的分配问题,之前还会就挂载目录的“/”(系统根目录,主要用以安装系统)、“/home”(用户目录,如果分配了这个挂载目录,那用户的存储空间会被从系统目录的空间中独立出来)、“/boot”(存储安装过程和升级过程中的一些文件)做一下去区分,一般根目录30G左右,boot分200M-400M,其余都给home——但现在我一般安装就是分配一个统一的根目录,格式选择EXT4,然后剩下大概1-2倍于物理内存的SWAP空间作为系统的虚拟内存。

        然后下一步到底,完成安装。

        一般最新的linux内核都会支持比较新的硬件设备,所有安装完成后网卡驱动之类就已经完成,所以还是比较简单,但是如果是NVIDIA的显卡,还是需要再安装一下的,详见NVIDIA显卡驱动安装部分。

删除软件

        Ubuntu安装完后会发现系统有不少的预安装软件,有些十分鸡肋,可以选择删除之。

        命令:   sudo apt-get remove XXX

        如:   sudo apt-get remove libreoffice-common  gnome-mines gnome-sudoku unity-webapps-common等等

安装NVIDIA驱动

        ubuntu默认安装的是开源的显卡驱动,一般安装完成后大概率是用的CPU中集成的显卡驱动来完成显示的。

        我摸索的安装方式有两种,一种是上英伟达的官网下载你显卡对应的驱动文件,选择.run类型的文件。一种是在线的PPA安装方式。

        先第一种

        首先是要终止目前的X服务(桌面显示服务): Ctrl+Alt+F1切换到tty1,输入账号密码,然后终止服务:

               sudo service lightdm stop  (当然貌似   sudo systemctl stop lightdm 也可以有一样功效),可以切换至F7看一下图形界面是否终止。

        然后,需要禁用目前的开源nouveau的服务:

               sudo vim /etc/modprobe.d/blacklist.conf

               在最后添加:

       也可以创建blacklist-nouvean.conf文件:sudo vim /etc/modprobe.d/blacklist-nouvean.conf

               添加:blacklist nouveau
                        options nouveau modeset=0

               再更新一下

                        sudo update-initramfs -u

                        reboot                      

                        lsmod | grep nouveau

        懒人安装法:

Ctrl+alt+F1进入终端安装显卡驱动,安装驱动时,先关闭可视化界面,sudo service lightdm stop,

将系统进行更新升级

sudo apt-get dist-upgrade #dist-upgrade相比较apt-get upgrade更为智能,能够根据库的相互依赖性来决定安装、删除一些库

sudo add-apt-repository ppa:graphics-drivers/ppa #尝试了add-apt-repository和apt-add-repository都可以实现这个功能

sudo apt-get update

sudo apt-get install nvidia-384 #目前最新的为nvidia-390

输入nvidia-smi,打印显卡信息和驱动版本,ok

如果启动时有问题则安装上面的步骤将开源驱动列入黑名单

安装cuda,cudnn

1.cuda

(本次安装的版本为cuda8.0,cudnn6.0)

下载相应的cuda版本,将chmod 777 *.run,除了询问是否安装驱动选择no,其他都是默认或yes

执行,后边为响应的cuda版本

sudo ./cuda8.0*.run

Do you accept the previously read EULA? accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48? (y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit? (y)es/(n)o/(q)uit: y

Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: y Install the CUDA 8.0 Samples? (y)es/(n)o/(q)uit: y

安装完毕后,进入 sudo gedit ~/.bashrc,声明环境变量

export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin 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/lib64

执行

sudo ldconfig

保存退出,运行source ~/.bashrc

测试安装是否成功

cd /usr/local/cuda/samples/1_Utilities/deviceQuery ##可以使用tab补全,可能目录有字母错了

sudo make

./deviceQuery

打印cuda和显卡信息

2.cudnn

下载cudnn,解压文件,

tar -xvf cudnn-8.0-linux-x64-v6.0.tgz

cd cuda/include文件夹,看到cudnn.h

sudo cp cudnn.h /usr/local/cuda/include/ # 复制头文件

cd ../lib64

sudo cp lib* /usr/local/cuda/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

后边的数字可以根据版本修改

3.安装tensorflow-gpu

首先安装pip

sudo apt-get install python-pip python-dev build-essential

sudo pip install --upgrade pip

sudo pip install --upgrade virtualenv

然后使用pip命令安装tensorflow-gpu,直接安装可以用

sudo pip install tensorflow-gpu==1.3

(也可以不加==1.3)直接安装最新的,如果觉得比较慢可以使用清华的镜像,执行

pip install \ -i https://pypi.tuta.tsinghua.edu.cn/simple/ \tensorflow-gpu==1.3

安装缺少的库,再安装补上

打开python,

import tensorflow

ok安装完成

4.安装pytorch

因为墙的原因,最好翻一下,或者直接下载安装包,

链接: https://pan.baidu.com/s/1elmOk2 密码: qrcf

sudo pip install 安装包

sudo pip install torchvision

然后进入python命令界面,

import torch

import torchvision

不报错,完成

因为框架会用到ctcloss,因此百度需要安装百度的warp_loss,这个运行速度快,git项目代码,又因为要支持pytorch,可以取下面git

如果没有安装git,需要安装,执行

sudo apt-get install git

git clone https://github.com/Amore-HDU/warp-ctc

cd warp-ctc

mkdir build

cd build

如果使用gpu运算,设置环境变量,执行

export CUDA_HOME=/usr/local/cuda

如果没有cmake,sudo apt-get install cmake,进行安装

cmake ../

make

切换到../pytorch_binding

安装pytorch的一些相关包,

sudo pip install lmdb

sudo pip install cffi

sudo pip install mahotas

warp-ctc关联到pytorch,需要执行一个setup.py脚本,首先进入warp-ctc/pytoch_bedding,修改setup.py中的第一个enable_gpu=True,如果为True,则不需要修改,执行

sudo python setup.py install

完成后重新打开一个控制台窗口,执行python命令行,执行import warpctc_pytorch,不报错,完成

         

安装IDE

        我目前开发比较常用的是python,虽然linux有万能的VIM,但毕竟vi的门槛还是比较高的,用不熟练的还是使用一些优秀的IDE(或者称之为软件)会比较合适一些,比如Pycharm,Anaconda等。

        在这我记一下Pycharm的使用。

        到pycharm的官网下载linux的安装包,我们米少就下载社区版的就可以了。

        下载完成后,解压下载的tgz文件:

                如果涉及到权限问题可以先改变文件的权限:sudo chmod 777 XXX  (XXX表示你需要改变权限的文件目录及文件名)

                解压压缩包: tar -xvzf XXX -C ~ (XXX表示需解压的文件名, -C的命令表示解压到指定的路径,此处示例中解压到home,所以用~,当然解压完成后你也可以去更改目录的名字方便记忆)

                进入执行文件所在的目录,即  cd XXX/bin   (此处的XXX即上一步你所解压的文件目录),可以ls一下,看到有一个pycharm.sh文件

                执行    sh pycharm.sh

                这个时候我们的pycharm就开始执行了,以后运行pycharm就可以如此用 sh pycharm.sh执行。pycharm开启后应该先到设置里的默认设置添加python的环境,并将添加好的环境设置为你当前开发文件的环境。

          当然现在有了更为方便的snap的包管理工具,就可以使用sudo snap install XXX 来安装需要的软件,pycharm的官网有专门的snap安装的指令,当然也能到snap的官网找软件,但是目前snap的速度是相当的不理想,如果有apt包还是安装apt的比较快一些。遗憾的是,目前在国内使用snap安装你必须忍受那难以想象的网络速度,且用且珍惜!


版权声明:本文为rayouwo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>