机器学习linux系统环境安装

安装镜像下载

  • 可以自己去ubuntu官方网站按照提示下载amd64的desktop版本
  • 或者考虑到国内镜像站点下载,如tuna163ali

课程使用最新的18.04.2镜像即可,如果是物理机安装,而且有GPU可用,可以参考课程给出的其他视频安装GPU版本的tensorflow。

系统镜像有desktop版本和server版本,server版本完全不带gui,只有命令行,不太适合日常用。

系统安装

物理机安装

双系统安装ubuntu,网上教程比较多,步骤比较繁琐,这里不再赘述,有一些注意事项这里列一下:

  • 双系统安装ubuntu,需要先在电脑硬盘上分出一个足够大的分区,这种分区操作有可能是破坏性的,请参考你看的教程的说明
  • 物理机安装需要准备一个U盘用于制作启动盘,666一下ubuntu启动U盘制作即可。
  • 由于物理机安装有可能会破坏磁盘结构,所以安装前需要小心备份主机上所有的数据。
  • 如果是比较新的笔记本,bios里面可能启动了secure boot,这种时候需要先禁用secure boot再进行安装
  • bios如果支持legacy方式,尽量使用legacy方式安装双系统,eif模型安装ubuntu双系统的时候,因为efi启动系统一般只认识/boot/efi/bootx64.efi,所以可能需要额外的设置才能启动系统。但是如果原来就是efi模式启动的windows,改成legacy可能无法启动。
  • 系统内存比较小的话,尽量多使用交换区,但是交换区的速度很慢,需要注意

直接使用物理机安装ubuntu的话,由于机器不同,操作者经验的多寡,安装过程中肯定会出现各种问题,勤666,不是太诡异的机器,一般都能找到解决办法。

atom平台的机器,如atom n280之类的一些上网本,因为机器不支持64位指令集,所以无法安装64位系统,可以安装32位的

虚拟机安装

教程使用virtualbox虚拟机进行安装,其他虚拟机如vmware是收费的,这里不做说明。windows的HyperV也可以用来安装ubuntu,性能也没什么大问题。

虚拟机软件下载

这里下载virtualbox的安装文件,记得把ext包也下载了安装好。

需要去bios启动intel虚拟化,才能使用64位虚拟机安装。

新建虚拟机

新建一个ubuntu的虚拟机,虚拟机软件本身已经很智能,只要输入名字就可以匹配对应的系统了。

新建虚拟机的时候,注意在自己硬盘上空间足够大的情况下,给虚拟机分配足够大的硬盘空间。

内存也是在自己内存足够的情况下分配尽可能大的内存。

虚拟CPU,如果自己主机的cpu比较好的话,可以多给虚拟机分几个CPU,虚拟机的运行会快得多。

安装过程

虚拟机里面的系统启动后,界面可能不够大,需要扩大一下窗口

选择语言

选择语言的界面什么提示都没有,这里需要按上下左右并按回车来确认语言选择。

准备安装ubuntu

这里一定不要选择安装的时候下载ubuntu更新,安装完成之后再进行系统更新

安装类型

如果是在虚拟机里面,一般直接选择清除整个磁盘并安装Ubuntu是最省事的做法,但是我们这里需要自己设置一下交换区,所以选择其他选项

如果是在物理机上进行双系统安装,情况还要复杂一点,需要事先规划好磁盘的空间。

分区

  • 分区需要至少指定一个根分区和一个交换区,交换区推荐的容量是内存容量的两倍。
  • 分区格式中,ext4是个比较不错的选择,如果虚拟机建立在ssd上,那么btrfs也是一个不错的选择。
  • 安装启动引导器的设备一般使用默认的就可以

物理机安装的时候,引导设备需要小心选择,linux会覆盖windows的引导设置,linux装好了,windows却启动不起来的情况经常出现

地区设置

按照实际的地区设置即可,国内用户直接选择上海即可。

设置用户名

按照自己的喜好进行设置即可,请一定记住设置的密码。自动登录可以勾选,但是不建议。

加密我的主目录这个如果不是非常特殊的情况,一般不要选择。

安装

安装过程很长,而且中间还要自动下载一些东西,如果不想等待,可以选择关掉虚拟机的网络,等跳过下载之后再打开网络

安装完成,虚拟机系统自动重启

安装完成之后,推荐利用snapshot功能创建一个还原点,以备不时之需。

安装完成之后的设置

apt源更换

ubuntu默认的镜像源地址在海外,国内的镜像源地址也不一定好使,可以考虑使用国内的镜像源:

sudo nano /etc/apt/sources.list

国内镜像源可以使用的有tuna,ali,163等,具体使用方式参考各镜像源的帮助文件

tuna的source文件内容,仅适用于ubuntu-18.04:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

系统安装完成后,先执行系统更新,更新完后建议重启一下系统:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

机器学习环境安装

安装pip:

sudo apt-get install python3-pip

这里安装的是python3版本的pip,鉴于python2已经开始宣布停止支持的计划,如果没有特殊需要的话,以后一律使用python3.

pypi的源也在海外,速度比较慢,推荐可以使用国内douban,ali等的镜像源

nano ~/.pip/pip.conf

如果没有这个目录和文件的话,手动创建一个就可以。

douban的pip.conf配置:

[global]
index-url = https://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com

ali的pip.conf配置:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host = mirrors.aliyun.com

tuna的pip.conf配置:

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

安装jupyter notebook,xgboost,lightgbm,scikit-learn

pip3 install jupyter xgboost lightgbm scikit-learn

我们使用的是ubuntu18.04.2版本的系统,pip安装的东西默认放到当前用户的home目录下的.local目录里面,仅供当前用户使用,所以可以不用加sudo。

安装完成之后,需要执行以下这个命令,或者将这个命令,放到你的.bashrc:

export PATH=$PATH:$HOME/.local/bin

很多系统都是自动做了这个设置,不知道为啥这个系统需要手动做这个设置

机器学习环境的使用

执行以下命令,可以在虚拟机内部直接开启notebook:

jupyter notebook

需要注意的是,命令行窗口里面运行的实际就是notebook的server进程,使用的时候,一定不能关掉,否则server也会被一起关掉。

notebook默认是在localhost上开启的,如果想要在虚拟机外部访问notebook,需要执行以下操作:

jupyter notebook password # 设置密码,用于登录
jupyter notebook --ip 0.0.0.0 #在0.0.0.0的地址上,接收所有的网络连接,不加ip参数,默认是只能在虚拟机内部使用

此时在外部就可以通过设置的密码和虚拟机的ip来访问虚拟机内部的noteboook了。

虚拟机的ip可以通过ip addr命令查看,虚拟机的ip可能是内部ip,所以虚拟机的网络需要从nat方式切换为桥接模式。切换网卡模式之后,需要让虚拟机网络重启一下。