(一)深度学习之环境配置

前言

想要学习深度学习的知识,没有一个完善的开发环境怎么能行?本篇基于本人的使用习惯,分享使用 vscode + WSL 配置最基础的深度学习环境的方法。其中涉及到 CUDA,MiniConda,cuDNN, Pytorch 的安装。

1. WSL 配置

WSL是 “Windows Subsystem for Linux” 的缩写,是 Windows 系统的 Linux 子系统。
相比于在传统的虚拟机上搭建 Linux 环境,WSL 有如下几点优势:

  • 与在虚拟机下使用 Linux 相比,WSL 更加流畅。
  • WSL 可以对 Windows 文件系统下的文件直接进行读写,文件传输更方便。
  • 剪贴板互通,可以直接在 Windows 下其它地方复制文本内容,粘贴到 WSL。

要想使用 WSL ,Windows 系统需要是 win10 或者 win11 。(本人系统为 win11 专业版)

1.1 开启 WSL 功能

在 windows 下使用 WSL 有两种方法:

第一种:

以管理员身份打开 Windows PowerShell ,输入下面的指令。指令执行完后,重启电脑。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

第二种:

打开控制面板找到图中功能,打开保存后重启电脑即可。

second ways

图1-1

1.2 *开启 WSL2 功能

“ WSL1 和 WSL2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。 WSL 2 是安装 Linux 发行版时的当前默认版本,它使用最新最好的虚拟化技术在轻量级实用工具虚拟机 (VM) 内运行 Linux 内核。”

(描述来自官方文档)

有些系统的版本太低,需要先更新 Windows 版本才能使用。

安装 WSL2 之前,必须启用“虚拟机平台”可选功能。计算机需要虚拟化功能才能使用此功能。以管理员身份打开 PowerShell 并运行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

然后设定 WSL 默认版本为 2。

wsl --set-default-version 2

1.3 安装 Ubuntu 系统

安装 ubuntu 源也有多种方法,可以通过 Microsoft Store 安装,也可以使用 PowerShell 使用指令安装。

本文主要介绍第一种安装方法:

请先确保 C盘 有16G 左右的运行空间!在后面我们会迁出数据到其他盘,但是开始时需要先安装在 C盘。

打开 Microsoft Store ,搜索 Ubuntu ,建议选择下载 Ubuntu 20.04.6 LTS 版本,等待下载完成后直接打开就可以了。

第一次需要你输入用户名和密码,注意,用户名的首字母不能大写!

输入以下代码检查是否能出现 Ubuntu 配置即可。

wsl -l -v
check

图1-2

之后就可以很方便的在 PowerShell 新建 Ubuntu 的控制界面了。

3

图1-3

1.4 数据迁出 C盘

如果你是通过指令安装的,则可以跳过这一步。

由于 Linux 的内核默认装在 C盘,之后只会越来越臃肿,挤占系统盘空间,所以建议分到其他盘符去。

打开命令行,依次输入:

  1. 关闭 WSL 子系统:
wsl --shutdown
  1. 导出 Ubuntu:
wsl --export Ubuntu-xx.xx E:\Ubuntu\ubuntu.tar

xx.xx 为版本号,本人为 20.04。导出路径自己定义

  1. 注销先前的系统:
wsl --unregister Ubuntu-20.04   
  1. 导入备份好的包:
wsl --import Ubuntu-xx.xx E:\Ubuntu\ E:\Ubuntu\ubuntu.tar --version 2

前一个路径为导出路径,后一个为备份所在路径。

重启 WSL 即可。

1.5 *linux 下载换源

大部分 linux 发行版的服务器都在国外所以下载速度都会很慢,使用国内的镜像下载速度就快很多。这一方面就不再多说,自己上网查询。

指路:

2. CUDA 安装

首先需要知道自己的电脑是否具有使用 CUDA 的条件。

在命令行中输入:

nvidia-smi
nvidia

图2-1

红笔位置就是当前电脑支持的最高版本的 CUDA 。

(截至 23/7/18 日,pytorch 最高只能支持 CUDA 11.8 版本,所以建议安装11.8 或者 11.7 版本。)

  1. 一条一条输入,需要的时间可能比较长,中途可能还需要输入密码,在执行倒数第二步时可能出现失败的提示,输入它提供的指令或者倒数第一条指令就可以了。
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.
  1. 进行安装。
sudo apt-get update
sudo apt-get -y install cuda
  1. 设置环境变量,输入:
vim ~/.bashrc
  1. 用上下左右键移动到最后一行,点击 i 键进入 Insert 模式,新建一行然后粘贴以下内容:
export PATH=/usr/bin:$PATH
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

(注意版本号要和自己下载的一致。按 ESC 退出,输入 :wq 回到控制窗口。)

  1. 更新下 source:
source ~/.bashrc
  1. 然后输入 nvcc -V 检查是否成功。
nvcc -V
nvcc

图2-2

出现版本号等信息即成功。

3. cuDNN 安装

  1. 下载 cuDNN:

需要注册一个 Navid 账号。

https://developer.nvidia.com/rdp/cudnn-archive

按照自己的 Ubuntu 和 CUDA 的版本选择对应的 deb 文件下载即可。

  1. 安装:

首先进入 Ubuntu 的控制界面,输入:

cd /mnt/e

mnt/之后的为你下载的 deb 的文件所在路径。

然后输入:

sudo dpkg -i YourDebName.deb

-i 后面为你下载的 deb 文件的名称。

输入 cd~ 即可回到主目录。

  1. 刷新数据:
sudo apt-get update
apt-cache search cudnn
  1. 安装 libcudnn8 运行库:
sudo apt -y install libcudnn8 libcudnn8-dev

4. Miniconda 安装

  1. 安装

下载安装包:

wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh

安装conda:

bash Miniconda3-latest-Linux-x86_64.sh
  1. 设置环境变量:

方法同上,不再赘述。

vim ~/.bashrc
# 新建
export PATH=~/miniconda3/bin:$PATH
# 更新
source ~/.bashrc

5. 创建虚拟环境

  1. 输入下面指令新建环境,name 自取:
conda create -n name python=3.8
  1. 输入下面指令后重启命令行:
conda init

这个时候 root 前应该有(base)。

  1. 激活虚拟环境:
conda activate name

6. Pytorch 安装

进入官网: https://pytorch.org/get-started/locally/

pytorch

图6-1

选择对应版本然后复制 Command 指令到 Ubuntu 安装即可。

下载时间过长的话可以上网搜索一下换源方法。

然后输入 python 进入 python 页面,输入:

import torch
torch.cuda.is_available()

如果没有任何报错并且输出 True,说明配置成功。

7. Vscode 链接 WSL

打开 Vscode,一般会直接提示你检测到 WSL 环境,是否需要链接,按照提示就可以了,没有的话下载 WSL 插件,链接到对应的版本,然后就可以在 Vscode 里快乐的使用了。

结语

此篇完成了基础的深度学习环境的配置,更加细节上的东西需要读者自己完善。