国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

這篇具有很好參考價(jià)值的文章主要介紹了基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 什么是Docker?

docker的介紹網(wǎng)上有很多,對于深度學(xué)習(xí)的認(rèn)來講,docker的好處就是直接把環(huán)境分享給他人,他人不需要再配置環(huán)境了。

比如我有一個(gè)目標(biāo)檢測的項(xiàng)目,我想分享給朋友,那么他首先需要在自己的電腦上配置好顯卡驅(qū)動(dòng)、CUDA、CuDNN,在拿到我的項(xiàng)目后,還需要安裝各種依賴庫,最后代碼還不一定跑起來。

如果我是用了docker環(huán)境進(jìn)行項(xiàng)目配置,我只需要將環(huán)境打包好后分享給朋友。他只需要安裝好顯卡驅(qū)動(dòng)就行,什么cuda、pytorch之類的都在我分享的環(huán)境了。

實(shí)際上github很多項(xiàng)目都提供了docker方式,但是我們更多還是自己配置環(huán)境和安裝對應(yīng)的pytorch版本,自己調(diào)試代碼嘗試復(fù)現(xiàn)作者的項(xiàng)目。如果你使用了docker,分分鐘就能將作者的環(huán)境在自己的電腦上復(fù)現(xiàn),非常便捷。

2. 深度學(xué)習(xí)環(huán)境的基本要求

在本文,我將介紹docker的基本使用,以及總結(jié)可能遇到的bug的解決方法。

在dockerhub中,有很多現(xiàn)成的鏡像可用,本文中會(huì)使用anibali/pytorch:1.10.2-cuda11.3-ubuntu20.04分享的鏡像。

該鏡像是ubuntu20+cuda11.3+pytorch1.10.2,根據(jù)描述(ENV NVIDIA_REQUIRE_CUDA=cuda>=11.3 brand=tesla,driver>=418,driver<419 driver>=450)我們只需要本機(jī)滿足顯卡驅(qū)動(dòng)版本即可。其他版本的鏡像可以去該作者的主頁,他制作了非常多的鏡像。

3. Docker的基本操作

3.1 在Windows上安裝Docker

windows有桌面docker,所以安裝過程比較簡單,按照普通軟件安裝即可。
安裝成功后,啟動(dòng)Docker Desktop軟件,等待docker引擎啟動(dòng)后,我們就可以在cmd中使用docker命令了。比如執(zhí)行sudo docker ps -a查看容器,如果沒有報(bào)錯(cuò)證明ok了,當(dāng)然現(xiàn)在我們還沒有創(chuàng)建容器也不會(huì)輸出什么有用的,不報(bào)錯(cuò)就行。

潛在的bug可能會(huì)與WSL有關(guān),需要windows電腦安裝有WSL,遇到這類bug可以參看網(wǎng)上的教程。

3.2 在Ubuntu上安裝Docker

ubuntu可以通過apt安裝,比較簡單:

sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

然后在終端執(zhí)行:sudo docker ps -a查看容器,如果沒有報(bào)錯(cuò)證明ok了,當(dāng)然現(xiàn)在我們還沒有創(chuàng)建容器也不會(huì)輸出什么有用的,不報(bào)錯(cuò)就行。

3.3 拉取一個(gè)pytorch的鏡像

現(xiàn)在docker安裝好了,我們拉取一個(gè)上面這個(gè)配置好cuda和pytorch的鏡像:
docker pull anibali/pytorch:1.10.2-cuda11.3-ubuntu20.04
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
因?yàn)槲抑跋逻^,所以顯示Already exists。等待鏡像拉取完成,如果成功了,我們可以查詢所有鏡像:
docker image ls
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

3.4 部署自己的項(xiàng)目

鏡像我們有了,現(xiàn)在我們可以創(chuàng)建容器了。
容器就像是一個(gè)運(yùn)行起來虛擬機(jī),我們使用同一個(gè)鏡像創(chuàng)建不同的容器,就像使用同一個(gè)windows系統(tǒng)安裝盤(鏡像),給不同電腦裝系統(tǒng),這些運(yùn)行起來的電腦就是容器。注意容器的改變不會(huì)影響鏡像,如果你在容器里部署好的項(xiàng)目,需要將容器導(dǎo)出為新的鏡像分享即可。

創(chuàng)建容器的命令是:
docker run -it --gpus all --name container_name anibali/pytorch:1.10.2-cuda11.3-ubuntu20.04 /bin/bash
在這個(gè)命令中,run是創(chuàng)建容器的指令,-it是交互式終端,因?yàn)閯?chuàng)建的容器就相當(dāng)于一個(gè)本機(jī)中的linux服務(wù)器,我們可以通過終端與容器交互。–gpus all這個(gè)就是使用本機(jī)的gpu,–name是給新建容器取個(gè)名字, anibali/pytorch:1.10.2-cuda11.3-ubuntu20.04就是要使用的鏡像,/bin/bash是指定bash。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
可以看到創(chuàng)建成功后,我們就直接進(jìn)入了容器中,處于容器的/app目錄下。

現(xiàn)在我們可以像使用云服務(wù)器那樣部署自己的項(xiàng)目了,比如在本機(jī)終端中(非容器中)使用docker cp 將本機(jī)中的項(xiàng)目復(fù)制到容器中的/app目錄下。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

3.5 導(dǎo)出配置好項(xiàng)目的新鏡像

現(xiàn)在我們假設(shè)你已經(jīng)在容器中部署好自己的項(xiàng)目了,比如通過python train.py就可以訓(xùn)練,你想讓你的朋友也能體驗(yàn)這個(gè)項(xiàng)目,那就需要將你的容器打包為鏡像分享。

將容器打包為鏡像為命令是:
docker commit -m "some information" <容器ID> <image_name:version>
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
容器ID可以通過docker ps -a查詢到,該命令可以查詢所有容器信息。
image_name:version就是你自己定義的鏡像的名字和版本號(hào)。

4. 分享新鏡像

現(xiàn)在在本地已經(jīng)有新鏡像了,分享有兩種:直接將鏡像打包tar分享,或者上傳到云,類似本文使用熱心作者的鏡像那樣。

4.1 將鏡像導(dǎo)出為tar分享給他人

打包導(dǎo)出的命令:docker save image_naem:version -o output_name.tar
-o就是output,也就是將鏡像保存到什么文件。如果不報(bào)錯(cuò)在當(dāng)前目錄下能夠看到你的鏡像tar文件。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
他人收到這個(gè)tar后,可以通過docker load -i xxx.tar完成加載,如果成功了可以通過docker image ls查看到該鏡像。

4.2 或者將鏡像推送到云倉庫

云倉庫可以自己去弄一個(gè),當(dāng)然dockerhub也可以免費(fèi)上傳分享,前提是你有一個(gè)dockerhub的賬號(hào)。

首先在終端需要登錄你的賬號(hào):docker login根據(jù)提示填寫賬號(hào)和密碼。
首先給新鏡像打tag:
docker tag new_image:version username/new_image:version
比如sudo docker tag pt_test_image:0 thgpddl/pt_test_image:0
注意,請將thgpddl替換為自己的用戶名,然后我們就可以看到新tag的鏡像(實(shí)際上發(fā)現(xiàn)tag的和之前的鏡像只是名字不一樣,其ID是一樣的)
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
然后開始上傳:docker push thgpddl/pt_test_image:0
然后等待上傳成功后(不過很可能出現(xiàn)408網(wǎng)絡(luò)問題,可以嘗試開啟代理試試),在dockerhub就可以看到上傳的鏡像了。

5. 使用新鏡像

在另一個(gè)安裝了docker的電腦上使用分享的鏡像很簡單。如果新鏡像上傳到了dockerhub,則和拉取鏡像一樣:docker pull username/image_name:version。
如果是通過save保存到本地的,鏡像是一個(gè)tar包,則可以在新電腦上通過:docker load -i new_image.tar加載。

6. 跨平臺(tái)造成nvidia-smi不可用的問題

注意:因?yàn)閣indows的docker底層使用的WSL,和Linux不一樣,所以在一個(gè)平臺(tái)制作導(dǎo)出的鏡像在另一個(gè)平臺(tái)使用時(shí),可能會(huì)出現(xiàn)gpu不可用的問題。比如在Ubuntu系統(tǒng)加載Windows平臺(tái)導(dǎo)出的鏡像時(shí),通過docker run --gpus all創(chuàng)建容器后,在容器中使用nvidia-smi會(huì)報(bào)錯(cuò):NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system.Please also try adding directory that contains li PATH. 那么接下來的內(nèi)容就會(huì)詳細(xì)如何解決跨平臺(tái)無法使用GPU的問題

首先會(huì)出現(xiàn)問題的情況有(同平臺(tái)是沒有問題的,比如linux和linux,windows和windows):

取個(gè)名字 導(dǎo)出鏡像的平臺(tái) 使用鏡像的平臺(tái) 問題
win2linux Widnows Ubuntu 容器內(nèi)使用nvidia-smi命令報(bào)錯(cuò):NVIDIA-SMI couldn’t find libnvidia-ml.so library in your system.
linux2win Ubuntu Windows 創(chuàng)建容器時(shí)使用–gpus參數(shù)就會(huì)報(bào)錯(cuò):libnvidia-ml.so.1- file exists- unknown

6.1 確認(rèn)是該問題

我在windows制作的鏡像在ubuntu加載后,無法使用nvidia-smi命令并報(bào)錯(cuò)NVIDIA-SMI couldn’t find libnvidia-ml.so library in your system.,那么我們需要先確認(rèn)是不是本節(jié)要討論的問題,所以我們要在容器中查詢:

  • 顯卡是否存在:lspci | grep -i nvidia(需要安裝sudo apt update && sudo apt install pciutils),可以看到存在顯卡2208(十六進(jìn)制),然后在顯卡查詢查詢2208得知是3080ti,就是我的顯卡。
    基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
  • 顯卡驅(qū)動(dòng)是否存在:cat /proc/driver/nvidia/version,可以看到在容器中是可以查詢到宿主機(jī)的顯卡驅(qū)動(dòng)的,證明沒問題。基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
    好了,說明顯卡和顯卡驅(qū)動(dòng)都是正常的,nvida-smi就是不可用
    基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

現(xiàn)在請根據(jù)自己是哪一個(gè)跨平臺(tái)情況按步驟解決把

6.2 win2linux問題如何解決?

本質(zhì)問題如圖,解決辦法就是重新建立軟鏈接,不過方法多樣而已。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

6.2.1 手動(dòng)創(chuàng)建軟鏈接

在linux加載來自windows的鏡像后,進(jìn)入容器后使用nvidia-smi命令會(huì)報(bào)錯(cuò):
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
首先查詢軟鏈接情況:ldconfig,看到很多l(xiāng)ibnvidia和libcuda軟鏈接為empty,所以我們目標(biāo)就是重新建立軟鏈接
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

進(jìn)入目錄:cd /usr/lib/x86_64-linux-gnu,通過find -name "libnvidia-ml.so"查詢顯卡驅(qū)動(dòng)515.43.04,請記住這個(gè)。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

建立libnvidia-ml.so的軟鏈接:

# libnvidia-ml.so.515.43.04 -> libnvidia-ml.so.1
sudo rm -f libnvidia-ml.so.1
sudo ln -s libnvidia-ml.so.515.43.04 libnvidia-ml.so.1

建立libcuda.so的軟鏈接

# libcuda.so.515.43.04->libcuda.so.1
sudo rm -f libcuda.so.1
sudo ln -s libcuda.so.515.43.04 libcuda.so.1

515.43.04是我的本機(jī)驅(qū)動(dòng),請改為自己的。

測試一下:
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
可以看到nvidias-mi命令可以用了,然后在python中導(dǎo)入torch后創(chuàng)建一個(gè)張量放到cuda上去沒有報(bào)錯(cuò),說明cuda可用了。

6.2.2 使用Dockfile自動(dòng)完成

Dockfile就是創(chuàng)建鏡像的一種方法,這里大概原理就是在鏡像1的基礎(chǔ)上,生成鏡像2,而在生成過程中自動(dòng)建立libnvidia-ml.solibcuda.so的軟鏈接。

注意,與上面方法不同在于,上面的方法是從鏡像1創(chuàng)建容器后,到容器里手動(dòng)創(chuàng)建軟鏈接,然后該容器就可以使用cuda了。本節(jié)方法是在鏡像1上創(chuàng)建軟鏈接,得到新的鏡像,然后就可以直接從鏡像創(chuàng)建cuda可用的容器。

那么現(xiàn)在,比如我現(xiàn)在要在linux下使用來自windows的鏡像thgpddl/win_1050:0,首先建立createlink.sh文件,內(nèi)容如下:

# 查找libnvidia-ml.so.driver_version文件,并保存driver_version版本號(hào)
libnvidia_ml_file=$(find /usr/lib/x86_64-linux-gnu/ -name 'libnvidia-ml.so.*'|grep -v libnvidia-ml.so.1)
driver_version=${libnvidia_ml_file#/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.}
echo "[success]:find GPU driver version=$driver_version"

# 刪除libnvidia-ml.so.driver_version.1原本存在的軟鏈接,并且新建軟鏈接:libnvidia-ml.so.1.driver_version -> libnvidia-ml.so.1
rm -f /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
ln -s "$libnvidia_ml_file" /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
echo "[success]:create ls: libnvidia-ml.so.1.$driver_version -> libnvidia-ml.so.1"

# 刪除libcuda.so.driver_version原本存在的軟鏈接,并且新建軟鏈接:libcuda.so.1.driver_version -> libcuda.so.1
rm -f /usr/lib/x86_64-linux-gnu/libcuda.so.1
ln -s "/usr/lib/x86_64-linux-gnu/libcuda.so.1.$driver_version" /usr/lib/x86_64-linux-gnu/libcuda.so.1
echo "[success]:create ls: libcuda.so.1.$driver_version -> libcuda.so.1 -> libcuda.so"

然后在同目錄下新建Dockerfile文件(D大寫且沒有后綴),內(nèi)容:

FROM thgpddl/win_1050:0 # 優(yōu)先從docker image找,沒有就從dockerhub找

WORKDIR /app          # 創(chuàng)建工作目錄/app
COPY ./createlink.sh .     # 將本機(jī)的createlink.sh復(fù)制到鏡像中的/app目錄下,注意后面有個(gè)點(diǎn),代表WORKDIR文件夾
USER root     # 切換root用戶
RUN cd /app && ./createlink.sh  # 進(jìn)入 /app執(zhí)行createlink.sh

然后創(chuàng)建新鏡像:sudo docker build -t new_image_name . 注意最后的點(diǎn),是指Dockerfile所在的目錄(終端應(yīng)當(dāng)進(jìn)入Dockerfile和createlink.sh所在的目錄)

該Dockerfile大概意思就是使用thgpddl/win_1050:0作為基礎(chǔ)鏡像,然后在鏡像中創(chuàng)建/app文件夾,然后將createlink.sh復(fù)制到鏡像里,切換到root用戶,進(jìn)入/app目錄并執(zhí)行createlink.sh自動(dòng)創(chuàng)建軟鏈接。至此得到軟鏈接已經(jīng)創(chuàng)建的新鏡像了。

在實(shí)際使用中,createlink.sh是不用更改的,如果你想分享你的鏡像,那么直接給一個(gè)文件夾,其中包含createlink.sh和Dockerfile文件,Dockerfile第一行改為你的鏡像即可。

6.3 linux2win問題如何解決?

在windows加載來自linux的鏡像后,進(jìn)入容器后使用nvidia-smi命令會(huì)報(bào)錯(cuò):
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題
從最后一行大概是說創(chuàng)建這個(gè)libnvidia-ml.so.1失敗,因?yàn)樗呀?jīng)存在。實(shí)際上這就是win2linux是我們創(chuàng)建的軟鏈接,可以在windows上它不能覆蓋,否則應(yīng)該能自動(dòng)覆蓋正常運(yùn)行了。既然windows的docker不能自動(dòng)覆蓋掉,我們幫它刪除即可。

基本原理如下,其實(shí)無論下面哪種方法都是要?jiǎng)h掉兩個(gè)so軟鏈接。
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

6.3.1 在WSL使用時(shí)手動(dòng)刪除軟鏈接

當(dāng)然很多時(shí)候鏡像發(fā)布者沒有考慮到這個(gè)問題,作者在ubuntu下使用–gpus配置好環(huán)境后直接發(fā)布了,所以我們需要自己去刪除libnvidia-ml.so.1和libcuda.so.1文件。

因?yàn)閱?dòng)命令使用–gpus all使用gpu,所以會(huì)調(diào)用libnvidia-ml.so.1,那么我們不使用gpu,應(yīng)該能創(chuàng)建容器,然后進(jìn)去刪掉該文件,然后再docker commit為鏡像,然后在新鏡像就能使用gpu了(此時(shí)沒有l(wèi)ibnvidia-ml.so.1,docker就能創(chuàng)建成功了)

大概意思如下圖,鏡像1和鏡像2的區(qū)別在于鏡像2刪掉了來自u(píng)buntu的libnvidia-ml.so.1(和libcuda.so.1)
基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題

首先不使用gpu創(chuàng)建容器:docker run -it --name container_name image_name /bin/bash
然后刪除兩個(gè)so文件:

(cmd) docker run -it --name container_name image_name /bin/bash
(容器內(nèi)) sudo rm -f /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
(容器內(nèi)) sudo rm -f /usr/lib/x86_64-linux-gnu/libcuda.so.1

然后形成新鏡像:docker commit -m "some information" container_name new_image_name:0

現(xiàn)在我們得到了一個(gè)可以在windows下正常使用的鏡像了:
docker run -it --gpus all --name container_name new_image_name:0 /bin/bash

6.3.2 使用Dockerfile自動(dòng)完成

上節(jié)是在非gpu容器中刪除兩個(gè)so.1文件,然后制作為新鏡像就可以使用gpu。實(shí)際上我們也可以借助Dockerfile來自動(dòng)在創(chuàng)建新鏡像時(shí)刪除兩個(gè)so.1文件,一步到位。

Dockerfile文件的內(nèi)容:

FROM thgpddl/linux2win:0
USER root
RUN rm -rf /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so.1

然后創(chuàng)建新鏡像:sudo docker build -t new_image_name . 注意最后的點(diǎn),是指Dockerfile所在的目錄(終端應(yīng)當(dāng)進(jìn)入Dockerfile所在的目錄)
其實(shí)該Dockerfile很簡單,就是使用基礎(chǔ)鏡像thgpddl/linux2win:0,然后切換root用戶,刪除libnvidia-ml.so.1libcuda.so.1,得到新的鏡像文件。

6.3.3 不使用–gpus all的容器打包(針對鏡像發(fā)布者)

因?yàn)閘inux的鏡像在windows使用報(bào)錯(cuò)是因?yàn)?code>創(chuàng)建libnvidia-ml.so.1失敗,因?yàn)樗呀?jīng)存在,libnvidia-ml.so.1是在ubuntu中使用gpu創(chuàng)建的。如果ubuntu中不使用gpu,就不會(huì)有l(wèi)ibnvidia-ml.so.1文件,那么就可以直接在windows上使用而不報(bào)錯(cuò)。

其實(shí)不用太復(fù)雜,我們在ubuntu容器中配置好自己的項(xiàng)目后,然后直接刪除兩個(gè)so.1文件后(確保你不再使用gpu,因?yàn)閯h除后在當(dāng)前容器就不能使用gpu),直接docker commit導(dǎo)出鏡像即可。因?yàn)樵撶R像本身沒有兩個(gè)so.1文件,所以可以直接在Windows或者其他linux中的docker中使用–gpus。

因?yàn)閡buntu鏡像在windows中報(bào)錯(cuò)是因?yàn)閣indows要產(chǎn)生so.1文件,但是ubuntu鏡像中存在so.1文件且windows無法強(qiáng)制覆蓋?,F(xiàn)在好了,我發(fā)布鏡像時(shí)直接打包時(shí)刪除so.1文件,在win下就不會(huì)報(bào)錯(cuò)了。

7. 總結(jié)

  • WSL的鏡像在Linux下使用需要設(shè)置軟鏈接,Linux鏡像在WSL下使用時(shí)需要?jiǎng)h除軟鏈接。
  • libcuda.so.version和libnvidia-ml.so.version,這里的libcuda.so.derver不是安裝cuda生產(chǎn)的,而是安裝驅(qū)動(dòng)生成的,提供該驅(qū)動(dòng)調(diào)用cuda的api。

8. 常見問題debug

  • error during connect: in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connectxxxxx:
    可能是docker desktop自動(dòng)更新導(dǎo)致了一些問題,重啟docker就好了
  • 解決Docker 一直starting 的辦法:解決Docker 一直starting 的辦法
  • WIN10家庭版 找不到Hyper-V的解決辦法
  • libGL.so.1基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題一般是安裝使用opencv造成的,直接pip install opencv-python-headless
  • 權(quán)限問題,在run指定參數(shù)–user=root也是可以解決的,但是可能也是文件夾本身需要chmod改權(quán)限
  • windows中wsl是默認(rèn)放在c盤的,非常占用磁盤,【轉(zhuǎn)載】Win10/11 更改 WSL Docker Desktop 存儲(chǔ)路徑
  • docker 問題基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題不斷重啟即可,要退出quit那種重啟

Reference

win10 WSL2 Docker 與 Linux Docker
WSL2上Docker打包的鏡像遷移到Ubuntu服務(wù)器上無法使用GPU
libcuda.so.1: cannot open shared object file: No such file or directory
WSL啟動(dòng)nvidia-docker鏡像:報(bào)錯(cuò)libnvidia-ml.so.1- file exists- unknown文章來源地址http://www.zghlxwxcb.cn/news/detail-449640.html

到了這里,關(guān)于基于Docker的深度學(xué)習(xí)環(huán)境NVIDIA和CUDA部署以及WSL和linux鏡像問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 動(dòng)手學(xué)DL——環(huán)境部署隨筆【深度學(xué)習(xí)】【Anaconda】【CUDA】【PyTorch】【jupyter】

    動(dòng)手學(xué)DL——環(huán)境部署隨筆【深度學(xué)習(xí)】【Anaconda】【CUDA】【PyTorch】【jupyter】

    記錄虛擬環(huán)境安裝部署細(xì)節(jié),以備重裝。 anaconda 2022.10 windows 版本,https://repo.anaconda.com/archive/ 加入環(huán)境變量(3/3) D:anaconda3 D:anacondaScripts D:anacondaLibrarybin 配置虛擬環(huán)境,命名為 pytorch 查看當(dāng)前所有的虛擬環(huán)境 激活 pytorch 這個(gè)虛擬環(huán)境 新環(huán)境下包很少,安裝科學(xué)計(jì)算庫 檢查

    2024年02月13日
    瀏覽(91)
  • 深度學(xué)習(xí)部署(十九): CUDA RunTime API YOLOV5后處理cpu解碼以及gpu解碼

    深度學(xué)習(xí)部署(十九): CUDA RunTime API YOLOV5后處理cpu解碼以及gpu解碼

    看看我們干了什么, 就是把bouding box恢復(fù)成框而已 對于模型推理后的后處理,可以直接使用cuda核函數(shù)進(jìn)行解碼,效率比較高 nms也可以在核函數(shù)里面實(shí)現(xiàn) 這里演示了一個(gè)yolov5的實(shí)際案例,后續(xù)其他的操作都是類似的 gpu_decoder難度較大,一般先寫一個(gè)cpu的decoder, 再寫個(gè)gpu_decode

    2023年04月11日
    瀏覽(17)
  • 不是Nvidia(英偉達(dá))顯卡可以安裝CUDA跑深度學(xué)習(xí)算法嗎?

    不是Nvidia(英偉達(dá))顯卡可以安裝CUDA跑深度學(xué)習(xí)算法嗎?

    答:不行! Cuda主要是面向Nvidia的GPU的。Intel和AMD的顯示芯片都不能進(jìn)行。所以,想要讓cuda環(huán)境搭建在自己的Windows系統(tǒng)上利用GPU的并行計(jì)算跑深度學(xué)習(xí)算法,就必須要有Nvidia顯卡且要安裝CUDA。 下面兩張圖片是AMD顯卡和Nvidia顯卡的對照: AMD顯卡:??/img-blog.csdnimg.cn/74ef793a4a0

    2024年02月11日
    瀏覽(20)
  • Python&aconda系列:GPU深度學(xué)習(xí)環(huán)境搭建:Win11+CUDA 11.7+Pytorch1.12.1+Anaconda以及對應(yīng)版本

    Python&aconda系列:GPU深度學(xué)習(xí)環(huán)境搭建:Win11+CUDA 11.7+Pytorch1.12.1+Anaconda以及對應(yīng)版本

    官方推薦的cuda版本為10.2和11.3,這兩種 cuda 支持大多數(shù)的 pytorch 版本。 以下是Pytorch和CUDA對應(yīng)的版本 CUDA 環(huán)境 PyTorch 版本 9.2 0.4.1、1.2.0、1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 10.0 1.2.0、1.1.0、1.0.0(1) 10.1 1.4.0、1.5.0(1)、1.6.0、1.7.0(1) 10.2 1.5.0(1)、1.6.0、1.7.0(1)、1.8.0(1)、1.9.0、1.9.0、1.10.0、1.

    2024年02月02日
    瀏覽(97)
  • linux docker部署深度學(xué)習(xí)環(huán)境(docker還是conda)

    在深度學(xué)習(xí)中,避免不了在遠(yuǎn)程服務(wù)器上進(jìn)行模型的訓(xùn)練,如果直接在服務(wù)器裸機(jī)的基礎(chǔ)環(huán)境跑顯然是不可取的,此時(shí)搭建用于模型訓(xùn)練的docker環(huán)境顯得尤為重要。 在深度學(xué)習(xí)中,避免不了在遠(yuǎn)程服務(wù)器上進(jìn)行模型的訓(xùn)練,如果直接在服務(wù)器裸機(jī)的基礎(chǔ)環(huán)境跑顯然是不可取的

    2024年02月21日
    瀏覽(19)
  • WIN11+WSL2+Docker 深度學(xué)習(xí)環(huán)境部署

    WIN11+WSL2+Docker 深度學(xué)習(xí)環(huán)境部署

    Windows系統(tǒng)開發(fā)偶爾會(huì)出現(xiàn)一些系統(tǒng)底層的bug導(dǎo)致程序無法運(yùn)行,開發(fā)很難受。 Linux系統(tǒng)開發(fā),娛樂軟件少,不盡興。 雙系統(tǒng)切換太麻煩,不能同時(shí)使用,難受! 如何結(jié)合Windows和Linux,既能暢爽娛樂,又不會(huì)被底層BUG影響開發(fā),來試試Windows的子系統(tǒng)WSL2吧??! 本次思路為:在

    2024年02月21日
    瀏覽(17)
  • 基于 Docker 的深度學(xué)習(xí)環(huán)境:Windows 篇

    基于 Docker 的深度學(xué)習(xí)環(huán)境:Windows 篇

    本篇文章,我們聊聊如何在 Windows 環(huán)境下使用 Docker 作為深度學(xué)習(xí)環(huán)境,以及快速運(yùn)行 SDXL 1.0 正式版,可能是目前網(wǎng)上比較簡單的 Docker、WSL2 配置教程啦。 早些時(shí)候,寫過一篇《基于 Docker 的深度學(xué)習(xí)環(huán)境:入門篇》,聊過了在 Linux 環(huán)境下,如何簡單、正確的配置 GPU Docker

    2024年02月15日
    瀏覽(19)
  • nvidia驅(qū)動(dòng) && docker鏡像cuda ,anaconda,pytorch下載ubuntu20.04&&pycharm遠(yuǎn)程連接遠(yuǎn)端服務(wù)器docker中的conda環(huán)境(完整操作)

    nvidia驅(qū)動(dòng) && docker鏡像cuda ,anaconda,pytorch下載ubuntu20.04&&pycharm遠(yuǎn)程連接遠(yuǎn)端服務(wù)器docker中的conda環(huán)境(完整操作)

    內(nèi)含一整套操作,從設(shè)置容器到遠(yuǎn)程連接。 操作環(huán)境: 服務(wù)器:ubuntu 20.04 本機(jī):win10 IDE:pycharm 專業(yè)版 下載驅(qū)動(dòng)很容易的,下面我們來介紹一種最簡單的方法。 ? ?插個(gè)小曲,刪除驅(qū)動(dòng)代碼 參考網(wǎng)站里有很詳細(xì)的解說,我們只再列出需要的代碼。 ?當(dāng)輸入這個(gè)命令時(shí) sudo d

    2024年02月04日
    瀏覽(31)
  • 基于WSL2+Docker+VScode搭建機(jī)器學(xué)習(xí)(深度學(xué)習(xí))開發(fā)環(huán)境

    基于WSL2+Docker+VScode搭建機(jī)器學(xué)習(xí)(深度學(xué)習(xí))開發(fā)環(huán)境

    內(nèi)容概述 :由于最近配發(fā)了新的工作電腦但不想裝雙系統(tǒng),因此通過本博文來記錄基于Windows子系統(tǒng)WSL+Docker搭建機(jī)器學(xué)習(xí)與深度學(xué)習(xí)開發(fā)環(huán)境的流程步驟,同時(shí)記錄該過程中所遇到的相關(guān)問題及解決方案。期待為同行學(xué)習(xí)者提供參考; 最終效果 :在Windows電腦上,無需安裝

    2024年02月04日
    瀏覽(33)
  • 基于docker的ubuntu云服務(wù)器jupyter深度學(xué)習(xí)環(huán)境配置指南

    基于docker的ubuntu云服務(wù)器jupyter深度學(xué)習(xí)環(huán)境配置指南

    安裝docker 文檔中的命令如下: 如果回顯如下所示,則說明成功: 安裝Nvidia-docker 根據(jù)官方文檔中的命令跑就行了 如果出現(xiàn)了以下回顯,說明安裝成功 需要注意的是,在運(yùn)行最后一步命令時(shí): sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi 如果報(bào)錯(cuò)

    2024年02月13日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包