導(dǎo)語(yǔ)
2023-4-11
對(duì)于機(jī)器學(xué)習(xí)er配置環(huán)境一直是個(gè)頭疼的事,尤其是在windows系統(tǒng)中。尤其像博主這樣的懶人,又不喜歡創(chuàng)建虛擬環(huán)境,過(guò)段時(shí)間又忘了環(huán)境和包的人,經(jīng)常會(huì)讓自己電腦里裝了各種深度學(xué)習(xí)環(huán)境和python包。長(zhǎng)時(shí)間會(huì)導(dǎo)致自己的項(xiàng)目文件和環(huán)境弄的很亂。且各個(gè)項(xiàng)目間的兼容性又會(huì)出現(xiàn)問(wèn)題。
不僅如此,windows系統(tǒng)獨(dú)特的“尿性”真的讓開發(fā)者苦不堪言!
好在微軟爸爸推出了WSL,WSL可以實(shí)現(xiàn)在windows電腦上運(yùn)行l(wèi)inux系統(tǒng)。目前已經(jīng)是越來(lái)越接近原生linux系統(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ú)需走很多彎路!下面開始吧!
需要在WSL上玩深度學(xué)習(xí),需要以下幾個(gè)條件
-
win11,最好更新到最新版本
-
電腦上有顯卡,Nvdia
-
windows上安裝顯卡驅(qū)動(dòng)及CUDA和CuDNN(第一章)
-
安裝WSL2 (2版本更好)
-
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內(nèi)直接安裝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
-
安裝合適的cuda版本和Cudnn
CUDA Toolkit Archive | NVIDIA Developer
? cuDNN Download | NVIDIA Developer
安裝教程網(wǎng)上很多,推薦
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ù)器的名稱或地址
- 修改dns服務(wù)器
網(wǎng)絡(luò)和internet設(shè)置
-高級(jí)網(wǎng)絡(luò)設(shè)置
--
-更多適配器選項(xiàng)
,選擇你連接的網(wǎng)絡(luò),右鍵屬性,將ipv4 DNS設(shè)置為8.8.8.8
。
然后即可顯示分裝版本。
安裝合適版本
建議選擇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編輯器中
打開如下源進(jìn)行更新。注意Ubuntu版本選擇20.04
ubuntu | 鏡像站使用幫助 | 清華大學(xué)開源軟件鏡像站 | Tsinghua Open Source Mirror
更新一下
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)可以穿透顯示顯卡信息。
3、wls-Docker運(yùn)行深度學(xué)習(xí)環(huán)境
適用Linux Docker配置深度學(xué)習(xí)環(huán)境。該方法使用Docker直接部署深度學(xué)習(xí)環(huán)境,方便快捷,并且不影響子系統(tǒng)本地。
Docker的部署方式分為兩種,一種是使用desktop。即windows下載軟件去部署docker;一種是使用linux版本的docker-engine。這就有點(diǎn)類似,一個(gè)使用圖形化界面,一個(gè)使用小黑盒子。
這種desktop部署方式有優(yōu)缺點(diǎn):
優(yōu)點(diǎn):部署方便,可視化,適合小白
缺點(diǎn):極大地占用宿主(windows)的空間!
-
1、Docker Data文件為ext4.vhdx動(dòng)態(tài)磁盤形式,該磁盤特點(diǎn)是,占用容量只會(huì)增大,即使刪除其內(nèi)部鏡像文件,占用空間也不會(huì)減少。
-
2、即使使用3.2節(jié)方法,雖然docker-data可以遷移至別的盤,但對(duì)鏡像進(jìn)行操作(如push),windows會(huì)產(chǎn)生臨時(shí)文件夾,同樣會(huì)占用C盤空間!
留下貧窮的淚水!o(╥﹏╥)o
-
3、性能問(wèn)題,docker-desktop目前還有些bug未修復(fù)。
對(duì)于不喜歡折騰的選3.1即可。
3.1與3.2方式二選一即可,但博主建議使用3.2節(jié)linux 原生docker-Engine進(jìn)行配置?。。?!
3.1與3.2方式二選一即可,但博主建議使用3.2節(jié)linux 原生docker-Engine進(jìn)行配置?。。。?/strong>
3.1與3.2方式二選一即可,但博主建議使用3.2節(jié)linux 原生docker-Engine進(jìn)行配置?。。?!
3.1 docker desktop 深度學(xué)習(xí)環(huán)境配置
3.1.1 docker desktop安裝
Install Docker Desktop on Windows
-
在windows上安裝docker-Desktop
別選4.17.1版本?。。。≡摪姹緹o(wú)法調(diào)用gpus all
目前4.18.0已結(jié)修復(fù)該bug
-
設(shè)置
1、鏡像源
將如下代碼加入Docker Engine中
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
2- 系統(tǒng)設(shè)置
打開兩個(gè)按鈕
Settings
---->General
—>Use the WSL 2 based engine
? Settings
---->Resources
—>Enable integration with additional distros
測(cè)試是否安裝成功,在wsl Ubuntu系統(tǒng)下輸入,
docker run hello-world
3.1.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.1.3 調(diào)用測(cè)試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ō)明安裝成功。
Compute 7.5 CUDA device: [NVIDIA GeForce RTX 2070 SUPER]
40960 bodies, total time for 10 iterations: 56.638 ms
= 296.218 billion interactions per second
= 5924.356 single-precision GFLOP/s at 20 flops per interaction
3.2 wsl-linux原生docker-engine深度學(xué)習(xí)環(huán)境
docker engine裝在wsl內(nèi)部,相比于docker-desktop,能極大節(jié)省windows宿主空間?。。。?/p>
且運(yùn)行效率更高
3.2.1 linux-docker-engine 安裝
wsl原生docker安裝方式和docker doc安裝方法一致
Install Docker Engine on Ubuntu
首先卸載老版本
sudo apt-get remove docker docker-engine docker.io containerd runc
建立儲(chǔ)存庫(kù)
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg
添加官方的gpgkey
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
設(shè)置版本庫(kù)
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新apt
sudo apt-get update
安裝Docker Engine, containerd, and Docker Compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
驗(yàn)證helloword
sudo docker run hello-world
配置鏡像源
和docker desktop一樣配置鏡像源,建議使用阿里云
登錄->控制臺(tái)
->搜索容器鏡像服務(wù)
->‘鏡像加速器’
通過(guò)修改daemon配置文件/etc/docker/daemon.json來(lái)使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://你自己的.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
ps:在上述流程中如果碰到 Temporary failure resolving ‘gb.archive.ubuntu.com’
Temporary resolve問(wèn)題,加入dns服務(wù)器
如果這能解決你的臨時(shí)解析信息,那么要么等待24小時(shí),看看你的ISP是否為你解決了問(wèn)題(或者直接聯(lián)系你的ISP)–或者你可以永久性地在你的系統(tǒng)中添加一個(gè)DNS服務(wù)器:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null
3.2.2 wsl - docker-engine自啟動(dòng) (實(shí)現(xiàn)systemctl )
在單獨(dú)的linux系統(tǒng)中,systemctl 可以對(duì)docker進(jìn)行自啟動(dòng),但是wsl初始系統(tǒng)并不支持systemctl ,每次重新啟動(dòng)wsl,都需要sudo service docker start
現(xiàn)在WSL2有了systemd的支持,我們可以在沒(méi)有Docker桌面的情況下在WSL中運(yùn)行Docker??!
教程:
**step1 啟動(dòng)systemctl **
啟動(dòng)wsl內(nèi)部的linux分發(fā)版本,運(yùn)行如下代碼
# Enable systemd via /etc/wsl.conf
{
cat <<EOT
[boot]
systemd=true
EOT
} | sudo tee /etc/wsl.conf
exit
或者編輯vim /etc/wsl.conf
使得
[boot]
systemd=true
ps:上述設(shè)置, sudo systemctl start docker
有還有問(wèn)題的小伙伴。,可以換成
[boot]
#systemd=true
command = sudo service docker start
**step2 重啟,測(cè)試systemctl **
wsl --shutdown
wsl --distribution Ubuntu ##Ubuntu指你的鏡像版本,按wsl -l -vs輸出的第一列來(lái)
測(cè)試過(guò)systemd 是否在運(yùn)行
systemctl --no-pager status user.slice > /dev/null 2>&1 && echo 'OK: Systemd is running' || echo 'FAIL: Systemd not running'
step3 docker設(shè)置
# Install docker-compose
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose
# 加入docker組
sudo usermod -aG docker $USER
#退出bash
exit
重新登陸
wsl --distribution Ubuntu
這時(shí)你會(huì)發(fā)現(xiàn),不用sudo service docker start
,docker也能啟動(dòng)了
而且,也能使用一些列如如下命令。
sudo systemctl restart docker
sudo systemctl start docker
3.2.3 NVIDIA Container Toolkit安裝
nvidia-container-toolkit是使得linux系統(tǒng)在docker容器中具有調(diào)用gpu的能力。
使用條件:
NVIDIA/nvidia-docker: Build and run Docker containers leveraging NVIDIA GPUs (github.com)
已經(jīng)說(shuō)明:
Make sure you have installed the NVIDIA driver and Docker engine for your Linux distribution.
Note that you do not need to install the CUDA Toolkit on the host system, but the NVIDIA driver needs to be installed.
因此只用去x顯卡裝驅(qū)動(dòng)和Docker就完事了!
安裝教程Installation Guide — NVIDIA Cloud Native Technologies documentation
建立package repository 和 GPG key:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
設(shè)置Docker daemon 守護(hù)進(jìn)程識(shí)別Nvidia容器Runtime
sudo nvidia-ctk runtime configure --runtime=docker
##重啟一下docker
udo systemctl restart docker
3.2.4 調(diào)用測(cè)試gpu
docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
Compute 7.5 CUDA device: [NVIDIA GeForce RTX 2070 SUPER]
40960 bodies, total time for 10 iterations: 56.638 ms
= 296.218 billion interactions per second
= 5924.356 single-precision GFLOP/s at 20 flops per interaction
則運(yùn)行成功
3.3 自定義自己docker
無(wú)論是利用3.1Docker-desktop建立的還是Docker-engine建立的環(huán)境,均可以進(jìn)行以下操作。
出發(fā)點(diǎn):
考慮到目前官方docker-hub中提供的imag并不能滿足日常的開發(fā)包的需要,且如果容器丟失或刪除,所有包的數(shù)據(jù)和項(xiàng)目文件均會(huì)丟失。因此,我們可以定制自己的image。并將container的項(xiàng)目文件映射到自己的本地文件目錄中。
可以使用vscode完成以下操作,方便編輯一點(diǎn)。
進(jìn)入vscode,安裝wsl 插件,連接wls(或著在wsl linux終端下,輸入code .
進(jìn)入
ps: docker開發(fā)ide也可以使用vscode,只需要對(duì)安裝Docker插件即可。
打開終端,如下圖,當(dāng)左下角綠色顯式WSL:Ubutun…為連接成功
創(chuàng)建一個(gè)以后存docker鏡像的目錄
mkdir docker-deeplearning-project
cd docker-deeplearning-project
3.3.1 自定義所需要安裝的包
我們想要在 tensorflow/tensorflow:latest-gpu
的基礎(chǔ)上增加一些別的包,以滿足日常需求,可以使用如下方法。打開vscode的終端,創(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.3.2 建立Dockerfile
dockfile建立規(guī)則
code Dockerfile
Dockerfile輸入一下代碼:
-
FROM:拉取現(xiàn)有base image
-
WORKDIR:定制工作目錄
-
COPY 拷貝本地目錄的requirements.txt到當(dāng)前dockerfile中,通過(guò)此去安裝額外的requirments包,
-
RUN 運(yùn)行安裝程序,-i 指定鏡像源
-
EXPOSE 開辟一定端口
-
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 8888
ENTRYPOINT ["jupyter","lab","--ip=0.0.0.0","--allow-root","--no-browser"]
3.3.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:
- "8888:8888"
volumes:
- /tf-jinqiu:/tf-jinqiu
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
3.3.4 運(yùn)行并測(cè)試
docker-compose up
出現(xiàn)如下輸出,則證明安裝成功。
復(fù)制底下的:http://127.0.0.1:8888/lab?token=d6e406efda3edf086b2baf4296a9400d53bee0d4221e1b9e
即可jupyter -lab
測(cè)試pytorch和TensorFlow ,gpu版本均能運(yùn)行?。。?/p>
注意文件映射位置:
因此我們項(xiàng)目地址可以存在container中/tf-jinqiu
中。
開發(fā)項(xiàng)目的地址為docker-compose.yaml
中設(shè)置的/tf-jinqiu
。因此在container中/tf-jinqiu
和wls ubuntu /tf-jinqiu
目錄下均有映射的文件。
進(jìn)入vscode docker中,在容器中右鍵 Attach Visual Studio Code即可進(jìn)入容器內(nèi),進(jìn)行相關(guān)project的開發(fā)。
3.3.5 push 上傳dockerhub
dockerhub可以上傳官網(wǎng)的dockerhub,也可以上傳阿里云的。
上傳自己建好的docker可以方便以后遷移機(jī)器,直接部署。
(1) 官方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
(2)阿里云鏡像倉(cāng)庫(kù)
容器鏡像服務(wù) (aliyun.com)
阿里云有詳細(xì)的
首先創(chuàng)建鏡像倉(cāng)庫(kù)倉(cāng)庫(kù)創(chuàng)建指南。
- 登錄阿里云Docker Registry
$ docker login --username=你的用戶名 registry.cn-hangzhou.aliyuncs.com
用于登錄的用戶名為阿里云賬號(hào)全名,密碼為開通服務(wù)時(shí)設(shè)置的密碼。
您可以在訪問(wèn)憑證頁(yè)面修改憑證密碼。
- 從Registry中拉取鏡像
$ docker pull registry.cn-hangzhou.aliyuncs.com/命名空間/倉(cāng)庫(kù)名稱:[鏡像版本號(hào)]
- 將鏡像推送到Registry
$ docker login --username=你的用戶名 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/命名空間/倉(cāng)庫(kù)名稱:[鏡像版本號(hào)]
$ docker push registry.cn-hangzhou.aliyuncs.com/命名空間/倉(cāng)庫(kù)名稱:[鏡像版本號(hào)]
請(qǐng)根據(jù)實(shí)際鏡像信息替換示例中的[ImageId]和[鏡像版本號(hào)]參數(shù)。
- 選擇合適的鏡像倉(cāng)庫(kù)地址
從ECS推送鏡像時(shí),可以選擇使用鏡像倉(cāng)庫(kù)內(nèi)網(wǎng)地址。推送速度將得到提升并且將不會(huì)損耗您的公網(wǎng)流量。
如果您使用的機(jī)器位于VPC網(wǎng)絡(luò),請(qǐng)使用 registry-vpc.cn-hangzhou.aliyuncs.com 作為Registry的域名登錄。
- 示例
使用"docker tag"命令重命名鏡像,并將它通過(guò)專有網(wǎng)絡(luò)地址推送至Registry。
$ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEregistry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 “docker push” 命令將該鏡像推送至遠(yuǎn)程。
$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
4、wsl本地運(yùn)行深度學(xué)習(xí)環(huán)境
該方法不借助Docker,因此需要直接在本地配置好WSL-Cuda,并安裝各類深度學(xué)習(xí)框架,類似于把Windows上跑的模型搬到WSL跑。
該方法只需要安裝Cuda。并不要裝顯卡驅(qū)動(dòng)和Cudnn(wsl2已經(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:新版本直接安裝即可文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-742935.html
TensorFlow (google.cn)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742935.html
# 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()
到了這里,關(guān)于2023最新WSL搭建深度學(xué)習(xí)平臺(tái)教程(適用于Docker-gpu、tensorflow-gpu、pytorch-gpu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!