腾讯云服务器Linux机器学习初学环境配置指南

本文最后更新于 2023年10月20日 上午

腾讯云服务器Linux机器学习初学环境配置指南

服务器选购

腾讯云服务器对学生有首次购买优惠,对比华为云和阿里云,性价比相对更高。矩池云的学生优惠力度也比较大,但是学生优惠只能按照运行时间(卡时)计费,包月价格仍然较贵。
在如下页面:https://cloud.tencent.com/act/campus

购买学生服务器,购买之前需要在腾讯云个人账户信息页面完成实名认证。需要注意的是,每个学生账号对每类商品只能享受一次优惠,因此推荐购买时长较长(三个月或者包年)的配置。

点击购买后会弹出窗口选择配置,此处选择的操作系统为Ubuntu Server 18.04,配置如下图所示:

完成购买后,页面会自动跳转到控制台,选择刚才购买的服务器实例,对其开机后,点击右侧登陆即可进入该服务器内部。


点击登陆后有可能要求扫码登陆服务器,浏览器可能会拦截弹出的服务器实例窗口。


在弹出的服务器实例登陆窗口中,填写密码(购买服务器后密码在个人中心的消息中查看)

登陆后即可进入Ubuntu的bash界面:

Ubuntu 环境配置

apt

首次使用apt-get时可能会出现如下报错:

1
>> Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)  
需要通过如下命令解锁apt占用的资源:
1
2
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
之后就可以正常使用sudo apt-get upgrade命令更新apt源了,腾讯云服务器的Linux实例默认使用的apt源为腾讯云Linux镜像,因此无需进行换源操作。
在Linux中可以使用apt安装包管理程序安装应用,比如下载firfox浏览器:
1
sudo apt-get install firfox
一些apt源中未含有的软件就需要自己手动添加源进行安装,比如安装VScode正式版:
1
2
3
4
5
6
7
8
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt install apt-transport-https
sudo apt update
sudo apt install code

gnome图形界面配置

虽然腾讯云支持直接使用VNC登陆,但是如此gnome可能会与Nvidia GPU驱动中自带的OpenGL冲突导致无法启动,推荐使用VNC软件连接。

安装gnome依赖库

初学者可能对Linux无图形界面的bash命令行感到陌生,可以安装gnome实现图形界面进行人机界面交互,基础版的gnome桌面需要使用apt下载如下两个包:

1
2
sudo apt-get install ubuntu-desktop
sudo apt-get install gnome
执行如下命令,完成系统面板、终端、文件浏览器等应用程序的安装:
1
sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop  

配置VNC

在Ubuntu实例的bash中下载VNC:

1
sudo apt-get install vnc4server  
安装完成后启动VNC服务。初次启动VNC会按要求设置VNC密码:
1
sudo apt-get install vnc4server
设置完成后出现如下界面表示VNC启动成功。

使用VIM编辑VNC的配置文件:

1
vi ~/.vnc/**xstartup**
在VIM编辑器中按i键进入编辑模式,并用如下内容覆盖配置文件:
1
2
3
4
5
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
然后按Esc键退出VIM的编辑模式,输入:wq保存文件并返回。
保存之后结束掉当前的VNC服务进程,然后重启桌面进程, geometry之后的参数为屏幕分辨率。
1
2
vncserver -kill :1
vncserver -geometry 1920x1080

本机VNC软件设置

在本机上访问网站:https://www.realvnc.com/en/connect/download/viewer/,选择合适的操作系统下载VNC Viewer安装包并在本机上安装。
在 VNC Viewer 软件中,输入 云服务器的公网IP地址:1,按 Enter。

在弹出的提示框中点Continue后输入之前设置的VNC的密码,单击OK后就可以使用图形化界面了。

设置本地账户

在gnome桌面的开箱设置中可以注册一个本地账户。
或者在bash终端中使用如下命令创建一个用户:

1
2
3
sudo useradd -r -m -s /bin/bash userName  #-r:建立系统账号;-m:自动建立用户的登入目录;-s:指定用户的默认使用shell
sudo passwd userName #根据提示输入新用户的密码即可
ls /home #出现新用户的目录说明创建成功
使用su xxx(xxx是用户名)切换到该本地用户,此后的操作都在该本地账户上进行。

安装英伟达GPU驱动

检查依赖和环境

执行如下命令检查系统中是否已经安装dkms:

1
dpkg -l | grep -i dkms
如果出现>> ii dkms... Dynamic Kernel Module Support Framework消息则表示安装成功,否则需要使用sudo apt-get install dkms安装dkms。
执行如下命令检查系统中是否已经安装gcc和linux-kernel-headers:
1
2
dpkg -l | grep -i gcc
dpkg -l | grep -i linux-headers
如果可以弹出linux下gcc和linux-kernel-headers相关文件列表,则表明系统中已经安装了这两个依赖包。如果返回为空则需要使用sudo apt-get install gcc linux-kernel-headers安装这两个包。

下载并安装驱动

在自己的电脑上前往英伟达官方驱动下载页面:Download Drivers 选择对应的产品和驱动。

当出现以下页面时,右键单击 AGREE&DOWNLOAD 并选择菜单中的复制链接地址。如下图所示:

使用wget下载这个驱动(需要把链接最后的&lang=us&type=Tesla删除,xxx是下载的驱动的版本号):

1
wget https://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/tesla/xxx.xxx/NVIDIA-Linux-x86_64-xxx.xxx-diagnostic.run
下载好后修改安装包权限(xxx是下载的驱动的版本号):
1
chmod +x NVIDIA-Linux-x86_64-xxxx.run
使用bash对其进行安装,需要注意的是安装的时候要使用自定义设置--disable-nouveau --no-install-libglvnd关闭veau验证等等:
1
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms -s  
安装结束后使用:nvidia-smi验证结果,出现下图则表示安装成功。

cudnn安装

英伟达在Linux版本的驱动内自带了CUDA,理论上是不需要自己安装CUDA的,因此直接开始安装cudnn。
需要注意的是,CUDA有两个API版本,一个是用nvidia-smi查询到的驱动API(driver API),另一个是可以用nvcc -V查询到的运行API(runtime API)。CUDA,cudnn,tensorflow-gpu的版本对应是针对于运行API而言的。
在Ubuntu实例中打开firfox浏览器(可以通过Ubuntu gnome的应用商店或者apt-get install firfox下载安装),并下载cudnn。
CUDA版本对应的cudnn可以在英伟达官网:https://developer.nvidia.com/rdp/cudnn-archive 上查询并且下载,但是需要注册英伟达开发者账号。
清华大学开源软件镜像站的Anaconda镜像中也包含了CUDA对应版本的cudnn,无需注册英伟达开发者账号即可下载.bz2格式的压缩包:清华大学开源软件镜像站-Anaconda-Linux-64
通过firfox浏览器下载好的cudnn会储存在/home/username/Downloads/文件夹下。打开文件浏览器访问这个目录,找到该压缩包并且解压。
然后将cudnn文件夹中的cudnn.h文件复制到/usr/local/cuda/include/文件夹下,并修改权限:

1
2
sudo cp /usr/include/cudnn.h /usr/local/cuda/include
sudo chmod a+x /usr/local/cuda/include/cudnn.h
终端中输入:
1
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出现下图类似的提示则表明cudnn安装成功。

Tensorflow 安装

安装Git

使用apt-get命令安装Git:

1
sudo apt-get install git
#### 安装Bazel 首先安装依赖库:
1
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python3
由于大陆无法直接通过Bazel官网下载,因此下载Bazel在Github 上的release:https://github.com/bazelbuild/bazel/releases
在Github上找到对应的Bazel版本后,在Bash中使用wget下载 (<version>是版本号),并执行如下命令:
1
2
3
4
5
6
7
8
wget https://github.com/bazelbuild/bazel/releases/download/<version>/bazel-<version>-installer-linux-x86_64.sh #从Github上下载对应安装包
ls -l ./bazel-x.x.x-installer-linux-x86_64.sh
chmod a+x ./bazel-<version>-installer-linux-x86_64.sh
ls -l ./bazel-<version>-installer-linux-x86_64.sh
# 上述操作会将Bazel安装包解压到$HOME/bin处
# 运行安装程序
chmod +x bazel-<version>-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user
出现Bazel is now installed!表明Bazel安装成功。
然后将Bazel添加到环境变量中,用VIM打开bashrc:
1
vim ~/.bashrc
按i进入VIM的编辑模式,在.bashrc最后添加一行:
1
export PATH="/home/yourname/.bazel/bin:$PATH"
按Esc退出编辑模式,并且输入:wq保存退出。
执行如下命令让.bashrc生效:
1
source ~/.bashrc
此时Bazel已经成功加入环境变量中,输入bazel version即可查看bazel版本。

使用PiP安装

检查Python开发环境

在Bash中使用如下指令检验Python和PiP的版本:

1
2
python3 --version
pip3 --version

安装 TensorFlow pip 软件包

使用pip install命令安装Tensorflow(<version>是要指定安装的版本号):

1
pip install tensorflow-gpu==<version>
使用如下代码验证TensorFlow是否安装成功:
1
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
如果系统返回了张量,则意味着已成功安装 TensorFlow。


腾讯云服务器Linux机器学习初学环境配置指南
https://l61012345.top/2022/11/01/技术杂谈/云服务器指南/
作者
Kigiha Oreki, Xindi Huang
发布于
2022年11月1日
更新于
2023年10月20日
许可协议