6 搭建一个友好的可塑性计算机视觉工具集

对于计算机视觉,深度学习是一个您始终绕不开的话题,本文将告诉您如何从零开始搭建一个友好的可塑性的计算机视觉环境,当然它也支持深度学习。为什么要从零开始搭建环境呢?因为,别人建立的环境也许并不适合您,而您想要改变其的环境也许会花费很多时间还不一定有用。为了解决您的这个烦恼,本文考虑搭建一个具有可以定制性并可以灵活改变环境的计算机视觉工具集。因为深度学习在计算机视觉中占据十分重要的地位,所以本文将以深度学习为基础进行工具集组装。

1 在您的机器上搭建一个深度学习环境

本文考虑分别在 Windows10 与 Ubuntu18.04 这两个系统上搭建深度学习环境。下面提到的软件包的具体功能先不说明,先安装配置好之后再一一阐述其功能。

1.1 在 Windows10 上配置软件工具

由于 Windows10 系统的配置相对于 Ubuntu来说是简单的,所以我们先考虑 Windows10。首先,我们需要下载一些必备软件:

图1 CUDA 下载的选择界面

这些软件下载好之后,按照提示进行安装即可。不过,安装过程中可能出现一些选项需要按照本文接下来展示的图示进行操作。

  1. 安装 CUDA 时,需要选择安装选项自定义(高级),见图示2。
图2 安装 CUDA 时需要选择 自定义
  1. 安装 CuDNN 时,只需要解压 cudnn-10.0-windows10-x64-v7.6.4.38.zipC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录之下。接着,设置 Path 的环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64。安装完毕之后,打开 Power Shell 输入 nvcc -V 验证是否与图3 显示一致。如果一致,恭喜您安装完成!
图3 验证 nvcc 是否正确安装
  1. 安装 Anaconda 需要注意按照图4 选择将 Anaconda 添加到环境变量。安装完成之后,找到开始菜单中的 Anaconda Navigator 图标(即图示5)便可以使用 Anaconda。
图4 Anaconda 安装
图5 找到 Anaconda 启动的图标
  1. 为了将 Git 与 vscode 紧密结合,需要先安装 vscode,再安装 Git。为了方便 vscode 更好的管理您的文件,安装 vscode 时需要按照图6 进行选择。安装 Git 需要按照图7 进行选择将 vscode 作为 Git 的默认编辑器。
图6 选择方便 vscode 管理的选项
图7 将 vscode 作为 Git 的默认编辑器

这样 vscode 与 Git 紧密结合在一起了。

1.2 在 Ubuntu18.04 上配置软件工具

在 Ubuntu 系统上搭建深度学习系统是很多人的噩梦,为了大家少走弯路,赶走噩梦,本文接下来介绍如何从安装 Ubuntu 开始搭建 Ubuntu 深度学习环境。和 Windows10 一样,我们同样需要先下载一些必备软件:

如果您的下载速度很慢,您可以考虑使用 IDM(https://www.internetdownloadmanager.com/),该软件被人戏称为国外的迅雷,它的下载速度是很快的。

下载好软件之后,我们需要使用 U 盘制作一个 Ubuntu 启动盘。

我们使用 rufs 制作 Ubuntu 启动盘:

  1. 双击 rufs 软件包,弹出的界面,设置如下:
图8 rufs 软件界面

制作完毕关闭 rufs 软件,并弹出 U 盘。

  1. 关闭待安装的机器,之后上插入 U 盘,再启动机器,选择 Install Ubuntu,即如图界面:
图9 进入安装界面
  1. 进入安装界面:
图10 开始安装
  1. 选择系统语言为中文
图11 选择系统语言为简体中文
  1. 不断点击继续,直至出现如下界面,选择清除整个磁盘并安装 Ubuntu(如果您想要安装双系统,可选择 安装 Ubuntu,与其他系统共存):
图12 选择安装的磁盘
  1. 接着按照界面的提示进行操作即可。直到提示您重启电脑时,您点击确认,之后等到屏幕关闭拔掉 U 盘,让机器自动重启。如此,您便完成了 Ubuntu 的安装。

电脑重启之后需要配置网络连接,配置好之后,我们需要做一些准备工作。

  1. 智能升级。安装新软件包并删除废弃的软件包:
$ sudo apt-get dist-upgrade
$ sudo apt-get autoremove
  1. 删除一些不需要的内置软件:
$ sudo apt-get remove libreoffice-common
$ $ sudo apt-get remove unity-webapps-common
$ sudo apt-get autoremove
  1. 启用图标点击最小化操作:
$ gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
  1. 更新和升级系统
$ sudo apt update
$ sudo apt upgrade
  1. 安装 Git
$ sudo apt-get install git

配置 git 的两个重要信息,user.nameuser.email,终端输入如下命令即可设置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
  1. 支持挂载 exfat
$ sudo apt-get install exfat-fuse
  1. 安装 g++ gcc 开发必备编译库(为之后安装 CUDA 做准备)
$ sudo apt-get install build-essential
  1. 为了支持 ssh server,需要:
$ sudo apt-get install openssh-server
$ sudo /etc/init.d/ssh start
$ sudo service ssh start
  1. 为了防止 Ubuntu 系统被玩坏了,我们需要一个可以进行备份和还原的工具:TimeShift
$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt update
$ sudo apt install timeshift
  1. 接着,我们需要安装 Anaconda:
$ sh Anaconda3-2019.10-Linux-x86_64.sh

安装过程中需要注意选择 conda init 以方便我们管理 Python 环境:

图13 运行 conda init

设置图1.6 选择为 yes,则将 Ubuntu 系统的 Python 环境设置为 Anaconda,如果您还想要使用原来的 Python 环境,可以这样:

$ conda config --set auto_activate_base false

Anaconda 的打开使用命令:anaconda-navigator

  1. 最后,我们还需要安装 vscode:
$ sudo dpkg -i code_1.39.2-1571154070_amd64.deb

vscode 的打开使用命令 code 即可。

OK! Ubuntu 系统的深度学习基础环境已经搭建完毕!下面我们需要安装 CUDA 与 cuDNN。

因为安装 CUDA 是一个很危险的行为,设置出错很容易把系统玩崩,所以我们可以先使用 TimeShift 备份当前系统。做深度学习,要用到 NVIDIA 的显卡,因此需要改显卡驱动,禁用nouveau。即以管理员是身份打开 /etc/modprobe.d/blacklist.conf 文件,然后添加内容:blacklist nouveau #添加数据 用来禁用 nouveau。而打开文件我们可以使用 vscode 进行文件编辑:

$ sudo code /etc/modprobe.d/blacklist.conf

首先进入 CUDA 安装包所在目录运行:

$ sudo ubuntu-drivers autoinstall
$ sudo sh cuda_10.0.130_410.48_linux.run
$ sudo sh cuda_10.0.130.1_linux.run

注意:最好不要选择安装 OpenGL 库,否则您可能无法顺利安装 CUDA。如果下载速度很慢可以修改下载源为阿里云。安装完毕之后,运行 nvidia-smi 检查 CUDA 是否安装正确。

最后需要安装 cuDNN:

sudo dpkg -i libcudnn7_7.6.4.38+cuda10.0_amd64.deb

1.3 设置清华镜像

为了提高 pip 与 conda 安装软件包的速度,我们需要设置清华镜像。对于 pip,Windows10 设置的方法是一样的,即:

$ pip install --upgrade pip -U # -U == --user
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

而对于 conda,在 Windows10 中这样设置:

$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config  --set show_channel_urls yes

在 Ubuntu18.04 中设置 conda,需要借助 vscode 修改用户目录下的 .condarc,即 code ~/.condarc,然后添加如下内容:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

2 安装深度学习框架

在安装深度学习框架之前,我们先了解一下 Anaconda: 一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。

Anaconda 提供了十分强大的 Python 环境与包的管理机制,本小节我们将利用它这一特性来说明如何在同一台机器上创建多个深度学习框架。由于深度学习框架的安装在 Windows10 与 Ubuntu 18.04 上是一样的,所以下面我便不在言明是在哪个系统上进行操作了。

如果我们想要使用和管理多个框架,如果将它们均安装在同一环境之下,往往很容易发生包的冲突问题。因而,为了让深度学习框架之间不发生冲突,我们需要借助 conda 对 Python 的环境进行管理。下面我们看看如何创建新的 Python 环境:

  1. 打开 Anaconda Navigator 并依次选择 EnvironmentsCreate,接着输入环境的名字并选择 Python 版本:
图14 创建一个新环境

下面以 TensorFlow 为例,说明如何安装包。

  1. 在新创建的环境中打开终端:
图15 打开新的终端

然后,在终端输入命令:

$ pip install tensorflow-gpu

完成 TensorFlow 框架的 GPU 版本安装。

我们不仅仅满足于在终端运行 Python 程序,如果想要在 Notebook,也可以运行新创建的环境岂不妙哉!

在 tensorflow 环境的终端输入:

$ conda install ipykernel
$ python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
$ pip install jupyter

此时,您在打开 Notebook,则会呈现两个环境:tensorflowpython 3

图16 两个 Python 环境

选择 tensorflow,进入 Notebook 编辑界面,我们测试 GPU 是否可以正常使用:

图17 测试 tensorflow gpu 是否使用正常

代码没有报错,说明 GPU 配置完成。需要注意的是在 Ubuntu 系统上如果测试 GPU 失败,您可以尝试运行如下命令:

$ conda install cudatoolkit=10.0
$ conda install cudnn=7.6

这样你便可以拥有两个互不干扰的 jupyter 环境!为了方便以后切换不同的深度学习框架,按照上述的步骤分别创建 MXNet,Pytorch 深度学习环境。

安装 MXNet 的命令是:

$ conda install ipykernel
$ python -m ipykernel install --name mxnet --display-name "MXNet"
$ pip install jupyter
$ pip install mxnet-cu100

安装 Pytorch 的命令是:

$ conda install ipykernel
$ python -m ipykernel install --user --name torch --display-name "Pytorch"
$ pip install jupyter
$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch

3 桥接 Ubuntu 与 Windows

对于同一个局域网的两台机器,一台安装了 Windows10,一台安装了 Ubuntu18.04。我们想要利用 SSH 协议桥接这两台机器,对于 Ubuntu 系统我们已经配置好了其 SSH Server,而 Windows10 需要我们做一些工作。

在 Windows Server 2019 或 Windows 10 1809 上的 "设置" UI 安装 OpenSSH,可参考微软官方提供的教程:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse。而对于低版本的系统,则需要下载 https://github.com/PowerShell/Win32-OpenSSH/releases 中的代码,然后将其解压并将解压后的文件目录添加 Windows 系统的 Path 环境变量之中。

$ .\install-sshd.ps1
$ .\FixHostFilePermissions.ps1

详细内容可参考:https://blog.csdn.net/hanzheng260561728/article/details/72857132

配置好 SSH Server 之后,我们便可以利用 SSH 连接这两台机器了。

比如,我们在 Windows10 系统打开 PowerShell 并使用 SSH 连接 Ubuntu18.04 的机器:

$ ssh xinet@192.168.42.7

其中 xinet@192.168.42.7 的组成是 用户名@IP地址

这样你便可以像图 18 那样使用 Ubuntu 系统的终端进行操作:

图18 ssh 桥接 windows 与 ubuntu

对于图18 需要做如下解释:

  1. conda activate pytorch 启动我们之前创建的 Pytorch 环境
  2. pip install 或者 conda install 是用来安装 Python 包的命令。
  3. 待您在终端的操作完成之后,需要使用命令 exit 退出 ssh 连接。

4 Ubuntu 多用户共享使用深度学习环境

我们可以使用命令 sudo adduser 用户名 的方式创建新用户。创建新用户之后,便可以令其使用共享环境。比如我们在用户 A 之中配置了深度学习环境,而用户 B 想要使用用户 A 的深度学习环境只需要运行命令 source /home/A/.bashrc 即可激活深度学习环境。

情景:我们不想建立远程桌面且又想要使用 Ubuntu 系统的 Jupyter Notebook,该怎么办?

我们可以使用 MobaXterm 软件来解决该情景问题。具体操作方法:

  1. 进入网站 https://mobaxterm.mobatek.net/download.html 下载软件。安装好之后,创建一个 Session,见图19:
图19 创建一个 Session

点击 OK 之后,进入 Ubuntu 系统下的用户 B 所在账户下的终端。虽然这是一个终端,但是此终端还可以做一些仿真的工作,比如打开 Jupyter Notebook:

图20 在 windows 系统打开 远端的 Ubuntu 系统的 Jupyter Notebook

是不是很神奇?不仅仅如此呢,这里打开了一个浏览器服务器,您可以在此浏览器之中下载东西,然后将您下载的东西拖曳回您的 Windows 系统。更多精彩内容您可以查看 MobaXterm 官方网站进行了解。

禁止转载,如需转载请通过简信或评论联系作者。