最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2023最新WSL搭建深度學(xué)習(xí)平臺(tái)教程(適用于Docker-gpu、tensorflow-gpu、pytorch-gpu)

2023-04-11 22:24 作者:成氣候  | 我要投稿

導(dǎo)語(yǔ)

2023-4-11

對(duì)于機(jī)器學(xué)習(xí)er配置環(huán)境一直是個(gè)頭疼的事,尤其是在windows系統(tǒng)中。WSL可以實(shí)現(xiàn)在windows電腦上運(yùn)行l(wèi)inux系統(tǒng)。

利用wsl 部署深度學(xué)習(xí)訓(xùn)練環(huán)境,無(wú)論是從便捷性上還是性能上均有優(yōu)勢(shì)。

博主瀏覽目前wsl配置深度學(xué)習(xí)環(huán)境的各種文章,采坑無(wú)數(shù),終于完成了最詳細(xì)的教程。

目前現(xiàn)在很多網(wǎng)上的教程都是老版本的,由于現(xiàn)在很多環(huán)境和軟件的升級(jí),很多不必要的操作就能直接省去!

這個(gè)教程就一個(gè)字:!相比以往的老教程,無(wú)需走很多彎路!下面開(kāi)始吧!


需要在WSL上玩深度學(xué)習(xí),需要以下幾個(gè)條件

  • win11,最好更新到最新版本

  • 電腦上有顯卡,Nvdia

  • 安裝顯卡驅(qū)動(dòng)及CUDA和CuDNN(第一章)

  • WSL 安裝及 WLS2安裝好Ubuntu20.04(本人之前試過(guò)22.04,有些版本不兼容的問(wèn)題,無(wú)法跑通,時(shí)間多的同學(xué)可以嘗試)(第二章)

在做好準(zhǔn)備工作后,本文將介紹兩種方法在WSL部署深度學(xué)習(xí)環(huán)境

  • Docker法(光速部署,不需要在WSL內(nèi)安裝任何驅(qū)動(dòng),方便遷移)(第三章)

  • wls2本地法(在WSL2直接安裝CUDA)(第四章)

1、windows顯卡環(huán)境及CUDA安裝

  • 安裝顯卡驅(qū)動(dòng)

    截止2023年,4月,全系顯卡驅(qū)動(dòng)已經(jīng)指出

    GPU in Windows Subsystem for Linux (WSL) | NVIDIA Developer

    查看顯卡驅(qū)動(dòng)版本,及最大支持cuda版本,例如,如下圖,本人最大支持12.1cuda

nvidia-smi

image-20230410221740441
  • 安裝合適的cuda版本和Cudnn

    CUDA Toolkit Archive | NVIDIA Developer

cuDNN Download | NVIDIA Developer

安裝教程網(wǎng)上很多,推薦

(35條消息) CUDA與cuDNN安裝教程(超詳細(xì))_kylinmin的博客-CSDN博客

2、WSL 安裝Ubuntu

2.1 wsl安裝

如果你的windows為11版本,那么安裝wsl會(huì)非常方便,這里教程可以參考微軟官方wsl。wsl有兩個(gè)版本,wsl1和wsl2,具體安裝過(guò)程見(jiàn)下。一般我們默認(rèn)使用wsl2版本。

安裝 WSL | Microsoft Learn

wsl的安裝這里不介紹了,圖太多。百度教程很多,這里就主要介紹下WSL安裝Ubuntu。

以下步驟均在WSL2安裝好的背景下鏡像。

2.2 安裝Ubuntu

查看發(fā)行版本,

wsl.exe --list --online

如果遇到以下錯(cuò)誤

無(wú)法從“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分發(fā)。無(wú)法解析服務(wù)器的名稱或地址

image-20230411134353638
  • 修改dns服務(wù)器

網(wǎng)絡(luò)和internet設(shè)置-高級(jí)網(wǎng)絡(luò)設(shè)置---更多適配器選項(xiàng),選擇你連接的網(wǎng)絡(luò),右鍵屬性,將ipv4 DNS設(shè)置為8.8.8.8

然后即可顯示分裝版本。

image-20230411134955994
image-20230411135038406



安裝合適版本

建議選擇20.04。22.04版本我試過(guò),有不少坑點(diǎn)。

wsl --install -d Ubuntu-20.04

2.3 遷移至非系統(tǒng)盤

這一步主要是為了減少C盤的占用空間,默認(rèn)WSL裝 的linux子系統(tǒng)在C盤

docker-data默認(rèn)安裝在c盤,且設(shè)置中難以更改,因此采用如下操作。

  • 1、shutdown 子系統(tǒng)

wsl --shutdown

  • 2、導(dǎo)出Ubuntu

wsl --export Ubuntu-20.04 F:\Ubuntu\ubuntu.tar

  • 3、注銷docker-desktop和docker-desktop-data

wsl --unregister Ubuntu-20.04

  • 4、導(dǎo)入

wsl --import Ubuntu-20.04 F:\Ubuntu\ F:\Ubuntu\ubuntu.tar --version 2

  • 5、刪除壓縮包

del D:\docker-desktop-data\docker-desktop-data.tar
del D:\docker-desktop-data\docker-desktop-data.tar

重新啟動(dòng)docker

2.4 更改鏡像源

這一步主要是為了加速linux各種包的下載速度。

首先做一個(gè)備份,這里就把Ubuntu默認(rèn)安裝的鏡像源備份,接著更改源

sudo cp ?/etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

##進(jìn)入vim ggdG清空所有文本,復(fù)制清華源進(jìn)vim編輯器中

打開(kāi)如下源進(jìn)行更新。注意Ubuntu版本選擇20.04

ubuntu | 鏡像站使用幫助 | 清華大學(xué)開(kāi)源軟件鏡像站 | Tsinghua Open Source Mirror

image-20230411152733630

更新一下

sudo apt-get update
sudo apt-get upgrade

一般情況下:

在win11版本wsl和最新版(2023.4)的NVIDIA驅(qū)動(dòng)場(chǎng)景下,在WSL2內(nèi),通過(guò)nvidia-smi已經(jīng)可以穿透顯示顯卡信息。

image-20230411135624544

3、wls-Docker運(yùn)行深度學(xué)習(xí)環(huán)境

適用Linux Docker配置深度學(xué)習(xí)環(huán)境。該方法使用Docker直接部署深度學(xué)習(xí)環(huán)境,方便快捷,并且不影響子系統(tǒng)本地

3.1 docker desktop安裝

Install Docker Desktop on Windows

  • 在windows上安裝docker-Desktop

    別選4.17.1版本?。。?!該版本無(wú)法調(diào)用gpus all

    目前4.18.0已結(jié)修復(fù)該bug

  • 設(shè)置

    1、鏡像源

    將如下代碼加入Docker Engine中

image-20230410141832996

"registry-mirrors": [
? ? ?"https://registry.docker-cn.com",
? ? ?"http://hub-mirror.c.163.com",
? ? ?"https://docker.mirrors.ustc.edu.cn"
?],

2- 系統(tǒng)設(shè)置

打開(kāi)兩個(gè)按鈕

Settings---->General--->Use the WSL 2 based engine


Settings---->Resources--->Enable integration with additional distros

image-20230410142215781

測(cè)試是否安裝成功,在wsl Ubuntu系統(tǒng)下輸入,

docker run hello-world


3.2 wsl 切換docker數(shù)據(jù)存儲(chǔ)位置

docker-data默認(rèn)安裝在c盤,占用很大空間,且設(shè)置中難以更改,因此采用如下操作。

  • 1、shutdown docker

wsl --shutdown

  • 2、導(dǎo)出docker-desktop和docker-desktop-data

wsl --export docker-desktop-data F:\wsl2\docker-desktop-data.tar
wsl --export docker-desktop ?F:\wsl2\docker-desktop.tar


  • 3、注銷docker-desktop和docker-desktop-data

wsl --unregister docker-desktop-data
wsl --unregister docker-desktop

  • 4、導(dǎo)入

wsl --import docker-desktop-data F:\wsl2\docker-desktop-data F:\wsl2\docker-desktop-data.tar --version
wsl --import docker-desktop F:\wsl2\docker-desktop F:\wsl2\docker-desktop.tar --version 2

  • 5、刪除壓縮包

del F:\wsl2\docker-desktop-data.tar
del F:\wsl2\docker-desktop-data.tar

重新啟動(dòng)docker

3.4 調(diào)用docker gpu

dock 官網(wǎng)給的條件已結(jié)滿足,由于目前版本已結(jié)最新,可直接調(diào)用,無(wú)需安裝其他內(nèi)容。

Starting with Docker Desktop 3.1.0, Docker Desktop supports WSL 2 GPU Paravirtualization (GPU-PV) on NVIDIA GPUs. To enable WSL 2 GPU Paravirtualization, you need:

  • A machine with an NVIDIA GPU(有英偉達(dá)顯卡)

  • The latest Windows Insider version from the Dev Preview ring(windows版本更細(xì))

  • Beta drivers from NVIDIA supporting WSL 2 GPU Paravirtualization(最新顯卡驅(qū)動(dòng)即可)

  • Update WSL 2 Linux kernel to the latest version using wsl --update from an elevated command prompt(最新WSL版本)

  • Make sure the WSL 2 backend is enabled in Docker Desktop (Docker中設(shè)置WSL 2 backend勾選上)

運(yùn)行如下代碼測(cè)試

docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark

如果得到,則說(shuō)明安裝成功。

Run "nbody -benchmark [-numbodies=<numBodies>]" to measure performance.
? ? ? ?-fullscreen ? ? ? (run n-body simulation in fullscreen mode)
? ? ? ?-fp64 ? ? ? ? ? ? (use double precision floating point values for simulation)
? ? ? ?-hostmem ? ? ? ? ?(stores simulation data in host memory)
? ? ? ?-benchmark ? ? ? ?(run benchmark to measure performance)
? ? ? ?-numbodies=<N> ? ?(number of bodies (>= 1) to run in simulation)
? ? ? ?-device=<d> ? ? ? (where d=0,1,2.... for the CUDA device to use)
? ? ? ?-numdevices=<i> ? (where i=(number of CUDA devices > 0) to use for simulation)
? ? ? ?-compare ? ? ? ? ?(compares simulation results running once on the default GPU and once on the CPU)
? ? ? ?-cpu ? ? ? ? ? ? ?(run n-body simulation on the CPU)
? ? ? ?-tipsy=<file.bin> (load a tipsy model file for simulation)

> NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

> Windowed mode
> Simulation data stored in video memory
> Single precision floating point simulation
> 1 Devices used for simulation
MapSMtoCores for SM 7.5 is undefined. ?Default to use 64 Cores/SM
GPU Device 0: "GeForce RTX 2060 with Max-Q Design" with compute capability 7.5

> Compute 7.5 CUDA device: [GeForce RTX 2060 with Max-Q Design]
30720 bodies, total time for 10 iterations: 69.280 ms
= 136.219 billion interactions per second
= 2724.379 single-precision GFLOP/s at 20 flops per interaction


設(shè)置支持 GPU 的映像可能需要一段時(shí)間。如果重復(fù)運(yùn)行基于 GPU 的腳本,您可以使用 docker exec 重復(fù)使用容器。

使用最新的 TensorFlow GPU 映像在容器中啟動(dòng) bash shell 會(huì)話:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash

測(cè)試是否gpu可用

>>> tf.config.list_physical_devices()
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]


3.5 自定義自己docker

出發(fā)點(diǎn):

考慮到目前官方docker-hub中提供的imag并不能滿足日常的開(kāi)發(fā)包的需要,且如果容器丟失或刪除,所有包的數(shù)據(jù)和項(xiàng)目文件均會(huì)丟失。因此,我們可以定制自己的image。并將container的項(xiàng)目文件映射到自己的本地文件目錄中。


進(jìn)入vscode,安裝wsl 插件,連接wls,打開(kāi)終端,如下圖,當(dāng)左下角綠色顯式WSL:Ubutun...為連接成功

image-20230411173949485

創(chuàng)建一個(gè)以后存docker鏡像的目錄

mkdir docker-deeplearning-project
cd docker-deeplearning-project

3.5.1 自定義所需要安裝的包

我們想要在 tensorflow/tensorflow:latest-gpu的基礎(chǔ)上增加一些別的包,以滿足日常需求,可以使用如下方法。

創(chuàng)建額外的requirments.txt

code ?requirments.txt

安裝以下包,這些包可以隨各位去配

torch那可以指定版本,在torch官網(wǎng)可以挑選

jupyterlab
pandas
matplotlib
torch --index-url https://download.pytorch.org/whl/cu118
torchvision --index-url https://download.pytorch.org/whl/cu118
torchaudio --index-url https://download.pytorch.org/whlcu118


3.5.2 建立Dockerfile

code Dockerfile

Dockerfile輸入一下代碼:

  • FROM:拉取現(xiàn)有base image

  • WORKDIR:定制工作目錄

  • COPY 拷貝本地目錄的requirements.txt到當(dāng)前dockerfile中,通過(guò)此去安裝額外的requirments包,

  • RUN 運(yùn)行安裝程序,-i 指定鏡像源

  • EXPOSE 開(kāi)辟一定端口

  • ENTRYPOINT 定義入口點(diǎn),通過(guò)列表構(gòu)建命令

FROM tensorflow/tensorflow:latest-gpu

WORKDIR /tf-jinqiu

COPY requirements.txt requirements.txt

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

EXPOSE 8881

ENTRYPOINT ["jupyter","lab","--ip=0.0.0.0","--allow-root","--no-browser"]

image-20230411174331458



3.5.3建立docker-compose.yaml

code docker-compose.yaml

解析:

  • version:版本

  • services:定義服務(wù)

  • jupyter-lab:image名稱

  • build: . 在當(dāng)前目錄

  • ports:映射端口

  • volumes:保存訪問(wèn)文件的部分。將其映射到本地文件中

  • deploy:share GPU

version: '1.0'
services:
?jupyter-lab:
? ?build: .
? ?ports:
? ? ?- "8881:8881"
? ?volumes:
? ? ?- /tf-jinqiu:/tf-jinqiu
? ?deploy:
? ? ?resources:
? ? ? ?reservations:
? ? ? ? ?devices:
? ? ? ? ? ?- driver: nvidia
? ? ? ? ? ? ?count: 1
? ? ? ? ? ? ?capabilities: [gpu]

3.5.4 運(yùn)行并測(cè)試

docker-compose up

出現(xiàn)如下輸出,則證明安裝成功。

image-20230411183301232

復(fù)制底下的:http://127.0.0.1:8888/lab?token=d6e406efda3edf086b2baf4296a9400d53bee0d4221e1b9e

即可jupyter -lab

測(cè)試pytorch和TensorFlow ,gpu版本均能運(yùn)行?。?!

注意文件映射位置

因此我們項(xiàng)目地址可以存在container中/tf-jinqiu中。

開(kāi)發(fā)項(xiàng)目的地址為docker-compose.yaml中設(shè)置的/tf-jinqiu。因此在container中/tf-jinqiu和wls ubuntu /tf-jinqiu目錄下均有映射的文件。

image-20230411183129497


進(jìn)入vscode docker中,在容器中右鍵 Attach Visual Studio Code即可進(jìn)入容器內(nèi),進(jìn)行相關(guān)project的開(kāi)發(fā)。

image-20230411183702094


3.5.6上傳dockerhub

保存自己docker的方式,可以采用docker-file配合docker-compose.yaml的方式,也可采用將整個(gè)鏡像上傳至Docker-hub中,一勞永逸。

保存dockerhub中,每次換機(jī)器只需要從docker中拉取鏡像,即可快速部署相關(guān)環(huán)境。

  • 登錄docker

docker login -u zhujinqiu ? # zhujinqiu為自己的賬號(hào)

  • docker容器變成鏡像

// 找到運(yùn)行中的容器 (復(fù)制你要打包的容器的id)
docker ps
// 打包為鏡像 (86d78d59b104:容器的id 、 ?my_centos:我們要打包成的鏡像的名字)
docker commit zhujinqiu my_centos
// 找到打包的鏡像
docker images

  • 將鏡像打?yàn)闃?biāo)簽

// my_centos:鏡像的名字 ? 、 zhujinqiu:我們docker倉(cāng)庫(kù)的用戶名 、 my_centos:我們剛才新建的倉(cāng)庫(kù)名 、 v1:版本號(hào),可以不設(shè)置
docker tag my_centos zhujinqiu/my_centos:v1

  • 將鏡像上傳到鏡像倉(cāng)庫(kù)

docker push zhujinqiu/my_centos:v1

  • 下載自己的鏡像

// 記得先登錄
docker login
// 根據(jù)版本號(hào)拉取
docker pull zhujinqiu/my_centos:v1

  • 修改鏡像名字

// d583c3ac45fd ?ID ? 后者是需要修改的名字
docker tag d583c3ac45fd myname:latest


4、wsl本地運(yùn)行深度學(xué)習(xí)環(huán)境

該方法不借助Docker,直接在本地配置好WSL-Cuda,并安裝各類深度學(xué)習(xí)框架,類似于把Windows上跑的模型搬到WSL跑。

該方法只需要安裝Cuda。并不要裝顯卡驅(qū)動(dòng)和Cudnn(已經(jīng)支持本地Windows映射)。

4.1 安裝wsl Cuda

CUDA Toolkit 12.1 Downloads | NVIDIA Developer

根據(jù)驅(qū)動(dòng)情況、pytorch、Tensorflow情況選擇合適的wsl——cuda版本。需要更改如下適應(yīng)“12-1為11-8”

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.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

安裝完需要,設(shè)置環(huán)境變量

vim ~/.bashrc

在最后加入,配置環(huán)境變量

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

更新下source

source ~/.bashrc

使用nvcc -V驗(yàn)證安裝成功與否

nvcc -V


4.2 安裝pytorch環(huán)境

1、miniconda安裝

# 下載安裝包
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

安裝完需要,設(shè)置環(huán)境變量

vim ~/.bashrc


更新下source

source ~/.bashrc


配置miniconda環(huán)境變量

export PATH=~/miniconda3/bin:$PATH

4.3 創(chuàng)建虛擬環(huán)境與pytorch安裝、tensorflow安裝

conda create -n env_pytorch python=3.8

# conda env list 查看虛擬環(huán)境list
# 激活
conda activate env_pytorch

1、安裝pytorch

Start Locally | PyTorch

根據(jù)cuda版本選擇合適的torchgpu版本

## -i 清華鏡像加速 安裝torchgpu
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

2、安裝tensorflow

ps:新版本直接安裝即可

TensorFlow (google.cn)

# Requires the latest pip
pip install --upgrade pip

# Current stable release for CPU and GPU
pip install tensorflow

4.4 測(cè)試gpu

## torch
import torch
torch.cuda.is_available()
## tensorflow
import tensorflow as tf
tf.config.list_physical_devices()


2023最新WSL搭建深度學(xué)習(xí)平臺(tái)教程(適用于Docker-gpu、tensorflow-gpu、pytorch-gpu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
萨迦县| 温泉县| 邹城市| 沙田区| 通化市| 德江县| 平凉市| 仁寿县| 黔西县| 宜春市| 渭南市| 泸溪县| 郁南县| 宜城市| 海南省| 深水埗区| 嘉义市| 锡林郭勒盟| 湖南省| 正宁县| 泾源县| 西和县| 都江堰市| 资兴市| 石嘴山市| 永州市| 中卫市| 宝丰县| 兰西县| 盐城市| 海门市| 鄂伦春自治旗| 阜南县| 龙口市| 加查县| 廉江市| 南漳县| 柳林县| 深水埗区| 台北县| 休宁县|