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

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

Tensorflow 安裝和 GPU 支持

2023-07-23 17:47 作者:ChrisKim_ZHT  | 我要投稿

最近開始學(xué)機(jī)器學(xué)習(xí),折騰了下 Tensorflow 的安裝方式,發(fā)現(xiàn)安裝的時(shí)候還是有許多坑的,不同的方法也有許多優(yōu)劣,在此做個(gè)筆記給大家分享一下。

首先,Tensorflow 官方提供了安裝文檔:https://www.tensorflow.org/install,不過(guò)里面只講了 pip 安裝和 Docker,本文會(huì)提到更多安裝方法,可以看具體情況選擇。

本文轉(zhuǎn)自我的個(gè)人博客

原文鏈接:https://www.zouht.com/3214.html

本文使用:CC BY-NC-SA 4.0 許可

1. 安裝方式與對(duì)比

方法一:純 pip 安裝

簡(jiǎn)介

  • 上手難度:低

  • 維護(hù)難度:高

  • 推薦程度:低

Tensorflow 官方提供的方法之一就是直接 pip 安裝,但我非常不建議這樣安裝。把不同項(xiàng)目需要的軟件包全堆到一個(gè)環(huán)境里面,這樣有非常大的概率會(huì)產(chǎn)生各種沖突報(bào)錯(cuò),非常難以維護(hù)。

安裝步驟

1.?確保有 Python 和 pip 環(huán)境

(截至 2023/5/32) Tensorflow 支持:

  • Python 3.6–3.9

  • Ubuntu 16.04 或更高版本

  • Windows 7 或更高版本

2.?使用 pip 安裝 tensorflow 軟件包

pip install tensorflow

3.?安裝完成

方法二:virtualenv + pip 安裝

簡(jiǎn)介

  • 上手難度:中

  • 維護(hù)難度:低

  • 推薦程度:中

virtualenv 是一個(gè)比較經(jīng)典的 Python 環(huán)境管理器,它通過(guò)創(chuàng)建虛擬環(huán)境,將每個(gè)環(huán)境隔離起來(lái),防止軟件包互相干擾。所以我們可以把它應(yīng)用到 Tensorflow 的安裝當(dāng)中,將它的環(huán)境隔離開來(lái)。

但是它相對(duì)于 Conda 這個(gè) Python 環(huán)境管理器來(lái)說(shuō),還是有許多局限:

  • 不能切 Python 版本(只能用本機(jī)版本)

  • 每次都要運(yùn)行腳本啟動(dòng)環(huán)境

  • 不能隨便移動(dòng)文件夾

  • 管理功能欠缺

安裝步驟

1.?確保有 Python 和 pip 環(huán)境

Python 3.6–3.9

2.?安裝 virtualenv

pip install virtualenv

(由于 virtualenv 是一個(gè)工具,建議裝到全局 Python 環(huán)境中)

3.?新建虛擬環(huán)境

在虛擬環(huán)境需要放置的目錄打開 Terminal,執(zhí)行:

virtualenv <虛擬環(huán)境名>

(一般虛擬環(huán)境名起名為 venv 就行)

4.?啟用虛擬環(huán)境

根據(jù)不同平臺(tái)的不同 Terminal,選擇不同的指令執(zhí)行:

  • Windows 平臺(tái) CMD:.\venv\Script\activate.bat

  • Windows 平臺(tái) Powershell:.\venv\Script\activate.ps1

  • Windows 平臺(tái) Gitbash:source ./venv/Script/activate

  • Linux/macOS 平臺(tái) bash:source ./venv/bin/activate

啟用后,命令行前面會(huì)多出一個(gè)括號(hào),括號(hào)內(nèi)為環(huán)境名,如:(venv)

4.?在虛擬環(huán)境內(nèi)使用 pip 安裝 tensorflow 軟件包

啟用虛擬環(huán)境后,該環(huán)境的軟件包就是與外界隔離的了,直接 pip:

pip install tensorflow

5.?退出虛擬環(huán)境

如果使用完畢需要退出的話,使用:

deactivate

方法三:Conda 安裝

簡(jiǎn)介

  • 上手難度:中

  • 維護(hù)難度:低

  • 推薦程度:高

Conda 是目前非常流行也非常強(qiáng)大的一個(gè) Python 環(huán)境管理器,它的基本功能和上文的 virtualenv 一致,但是它有很多好用的額外特性。

安裝步驟

1.?下載 Anaconda

前往 Anaconda 官網(wǎng)下載安裝包:https://www.anaconda.com/download/

2.?安裝 Anaconda

運(yùn)行安裝包,前面的設(shè)置都默認(rèn)就行,最后一步需要注意,需要勾選將 Anaconda3 加入到 PATH 環(huán)境變量中(雖然上面注明了不建議,但是如果不加入環(huán)境變量,后續(xù)的使用會(huì)麻煩很多)

如果安裝的時(shí)候忘記勾選環(huán)境變量,也可以手動(dòng)添加以下五條:

3.?初始化 Conda

首先要初始化 conda,如果不初始化的話,虛擬環(huán)境啟用了沒(méi)反應(yīng):

conda init <shell>

shell 類型需要根據(jù)自己的運(yùn)行的 shell 選擇:[‘bash’, ‘cmd.exe’, ‘fish’, ‘powershell’, ‘tcsh’, ‘xonsh’, ‘zsh’]

4.?配置 Conda 下載源

由于 Conda 默認(rèn)下載源在國(guó)外,如果不調(diào)整的話下載速度會(huì)非常緩慢(當(dāng)然可以用魔法)

conda 配置文件儲(chǔ)存在用戶目錄中:C:\Users\ChrisKim\<用戶名>,使用文本編輯器中打開,添加下載鏡像,這里選用的是清華大學(xué)開源鏡像站:

5.?創(chuàng)建新環(huán)境

使用以下命令創(chuàng)建名為 tf 的 Python 版本 3.8 的新環(huán)境:

conda create -n tf python=3.8

6.?啟用 tf 環(huán)境

conda activate tf

啟用后,命令行前面會(huì)多出一個(gè)括號(hào),括號(hào)內(nèi)為環(huán)境名,如:(tf)

7.?安裝 tensorflow

在 conda 內(nèi),我們一般不直接用 pip 安裝軟件包,而是使用 conda 來(lái)安裝:

conda install -c anaconda tensorflow

8.?退出虛擬環(huán)境

如果使用完畢需要退出的話,使用:

conda deactivate

方法四:Docker 安裝

簡(jiǎn)介

  • 上手難度:高

  • 維護(hù)難度:低

  • 推薦程度:中

Tensorflow 官方推薦的第二個(gè)安裝方法就是 Docker 容器了,使用 Docker 容器,你不需要配置任何東西,容器鏡像已經(jīng)配置好了。另外容器天然能夠?qū)h(huán)境隔離開來(lái),因此也能防止軟件包互相干擾。

不過(guò)容器作為一個(gè)新手接觸較少的概念,并且涉及到很多指令操作,對(duì)于新手來(lái)說(shuō)比較困難。各位視自己情況選擇要不要用它。

本文的使用 docker 環(huán)境基于 Windows + WSL2 平臺(tái)(會(huì)熟練用 Linux 的估計(jì)也不需要看這教程裝 Docker)

安裝步驟

1.?安裝 WSL2 (Windows Subsystem for Linux 2)

另外,要使用 WSL2,需要滿足 Windows 10 版本大于 2004 或 Windows 11.

安裝 wsl 的方法可以參考微軟官方文檔:https://learn.microsoft.com/zh-cn/windows/wsl/install

2.?安裝 Docker Desktop

安裝 Docker Desktop 并使用 WSL2 作為后端可以參考微軟官方文檔:https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers

其實(shí)最新版的 Docker Desktop 在裝好 wsl2 后已經(jīng)可以直接安裝并識(shí)別到 wsl2 了,因此直接去下載安裝包安裝就行了:https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe

3.?拉取 tensorflow 鏡像

tensorflow 官方鏡像位于:tensorflow/tensorflow,有如下 tag 可以選擇(來(lái)源)

每個(gè)基本標(biāo)記都有會(huì)添加或更改功能的變體:

對(duì)于我們來(lái)說(shuō),拉取?tensorflow/tensorflow:latest?就行了,如果需要支持 GPU 加速,可以拉取?tensorflow/tensorflow:latest-gpu,如果還需要內(nèi)置 jupyter 筆記本,可以拉取?tensorflow/tensorflow:latest-gpu-jupyter.

具體的命令為:

docker pull tensorflow/tensorflow:latest

4.?創(chuàng)建新容器

如果是 CPU 版本,在 Terminal 中執(zhí)行命令:

docker run -d -v tensorflow/tensorflow:latest --name tf

如果是 GPU 版本,需要給容器添加 GPU:

docker run --gpus all -d -v tensorflow/tensorflow-gpu:latest --name tf-gpu

如果有 jupyter,還需要映射筆記本目錄和對(duì)應(yīng)端口:

docker run --gpus all -d -v <宿主目錄>:/tf/notebooks -p <宿主端口>:8888 tensorflow/tensorflow:latest-gpu-jupyter --name tf-gpu

宿主目錄選取一個(gè)主機(jī)存儲(chǔ)筆記本的地方,這樣容器刪除后數(shù)據(jù)不會(huì)丟失。

宿主端口選取一個(gè)空閑的端口,可以直接選擇一樣的 8888.

5.?進(jìn)入容器

創(chuàng)建容器后,可以先使用?docker ps?查看一下容器列表,然后執(zhí)行以下命令進(jìn)入容器內(nèi)的 shell:

docker exec -it <容器名/容器ID> bash

如果選擇的鏡像帶有 jupyter,在宿主機(jī)瀏覽器訪問(wèn) 127.0.0.1:8888 即可進(jìn)入筆記本(沒(méi)錯(cuò),WSL2 Docker 的端口是直接映射到宿主機(jī)的)

6.?容器操作

  • 啟動(dòng)容器:docker start <容器名/容器ID>

  • 關(guān)閉容器:docker stop <容器名/容器ID>

  • 刪除容器:docker remove <容器名/容器ID>

2. GPU 支持

如果你的電腦有 Nvidia 顯卡,那么可以通過(guò) CUDA 加速 Tensorflow 的訓(xùn)練過(guò)程,我的 GTX1650 相比 i7-9750H 可以加速大概 5 倍,用顯卡跑的話 CPU 也不會(huì)滿載 100% 了,電腦也不會(huì)因?yàn)榕苡?xùn)練而卡頓。

不過(guò)要支持 GPU 加速的話,需要有額外配置,該部分主要講的就是 GPU 的額外配置。

注:使用容器安裝的話不需要這一步,官方鏡像已經(jīng)給你配置好了環(huán)境,但是你還是需要安裝顯卡驅(qū)動(dòng)。

第一步:安裝依賴驅(qū)動(dòng)

根據(jù) Tensorflow 官方文檔:https://www.tensorflow.org/install/gpu,我們需要安裝的依賴有:

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

  • NVIDIA CUDA 工具包

  • NVIDIA cuDNN 庫(kù)

  • (可選) TensorRT

我們下面依次安裝:

NVIDIA 顯卡驅(qū)動(dòng)

這個(gè)應(yīng)該所有人都裝過(guò)了,在此略去。不過(guò)附上官網(wǎng)下載頁(yè)面:

https://www.nvidia.com/download/index.aspx

NVIDIA CUDA 工具包

首先進(jìn)入官網(wǎng)下載頁(yè)面:

https://developer.nvidia.com/cuda-downloads

根據(jù)自己的操作系統(tǒng)選擇對(duì)應(yīng)版本,對(duì)于 Windows,選擇 exe(local) 下載安裝包。

(如果使用的是 WSL2,需要在 Linux 欄目下找到 WSL-Ubuntu 版本)

下載后,執(zhí)行安裝器即可完成安裝。

安裝后,進(jìn)入命令行輸入以下編譯器指令檢查安裝:

nvcc -V

如果有正確輸出則成功安裝,如:

如果有問(wèn)題的話,可以去檢查一下自己的環(huán)境變量是否有問(wèn)題:

NVIDIA cuDNN 庫(kù)

首先查看自己顯卡的 CUDA 版本,在命令行中執(zhí)行:nvidia-smi

在右上角即可找到版本號(hào),例如:CUDA Version: 11.8

然后進(jìn)入官網(wǎng)下載頁(yè)面:

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

選擇對(duì)應(yīng) CUDA 版本的 cuDNN 庫(kù),我選擇的是最新的 v8.9.0. 展開列表后會(huì)有各個(gè)版本的,我們選擇第一個(gè) Windows 版本下載。

下載后得到一個(gè) .zip 壓縮包,將其解壓得到以下文件結(jié)構(gòu):

然后我們找到 CUDA 工具包的目錄:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\<版本號(hào)>\,它的文件結(jié)構(gòu)是:

將 cuDNN 庫(kù)根據(jù)文件結(jié)構(gòu)一一對(duì)應(yīng)地拷貝到 CUDA 工具包的目錄里面即可。

這一步做完之后,記得重啟一遍電腦。

第二步:安裝 tensorflow

首先,對(duì)于現(xiàn)在使用的 Tensorflow 2,pip 的?tensorflow?軟件包已經(jīng)同時(shí)包含了 CPU 和 GPU 支持,不存在 Tensorflow 1.x 的?tensorflow-gpu?軟件包了。因此,如果使用 pip 的話,直接安裝?tensorflow?軟件包。

但是這里面還是有坑,conda 的?tensorflow?軟件包只包含了 CPU 版本的,而支持 GPU 版本的軟件包為?tensorflow-gpu,因此如果使用 conda 的話,需要安裝?tensorflow-gpu?軟件包。

所以,正確的安裝方式如下:

  • 對(duì)于使用純 pip 或用 virtualenv + pip 的:pip install tensorflow

  • 對(duì)于使用 conda 的:?jiǎn)⒂锰摂M環(huán)境后用?conda install tensorflow-gpu?安裝

另外,tensorflow 2 支持的 Python 版本為 3.6~3.9,因此在創(chuàng)建 conda 環(huán)境時(shí)記得指定對(duì)應(yīng)的版本。如果要使用最新的 tensorflow,就創(chuàng)建最新的 Python 版本:conda create -n tf python=3.9

第三步:測(cè)試 GPU 支持

使用 Python 運(yùn)行以下代碼檢查 Tensorflow 是否正確識(shí)別到了 GPU:

如果輸出的列表中有一個(gè) device_type 為 CPU,有一個(gè) device_type 為 GPU,則同時(shí)識(shí)別到了 CPU 和 GPU。一個(gè)正確的輸出如下:

可能出現(xiàn)的問(wèn)題:AttributeError: module ‘numpy’ has no attribute ‘object’.

這個(gè)的原因是,自從 numpy 1.14 后,np.object 被廢棄了,被改為了 object。而 tensorflow 還沒(méi)有更新,導(dǎo)致與 numpy 的兼容問(wèn)題。這個(gè)可以通過(guò)降級(jí) numpy 解決:

conda install numpy==1.23.4

可能出現(xiàn)的問(wèn)題:Could not locate zlibwapi.dll

有時(shí)候經(jīng)過(guò)上面的檢查沒(méi)問(wèn)題,但是訓(xùn)練的時(shí)候崩潰報(bào)錯(cuò) Could not locate zlibwapi.dll,這個(gè)是因?yàn)闆](méi)有裝 zlib 庫(kù)。

前往 zlib 官網(wǎng)下載對(duì)應(yīng)的 dll 庫(kù):http://www.winimage.com/zLibDll/

選擇 AMD64/Intel EM64T?版本的 zlib123dll.zip 下載,解壓后找到 zlibwapi.dll 這個(gè)文件,放置到 CUDA 工具包的 bin 目錄下即可。

(也可以解壓后將整個(gè)文件夾目錄添加到環(huán)境變量)


Tensorflow 安裝和 GPU 支持的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
合江县| 手机| 遂平县| 沙田区| 新巴尔虎左旗| 区。| 南木林县| 桃园县| 靖边县| 丹巴县| 利川市| 南康市| 东乌珠穆沁旗| 西贡区| 隆子县| 宁乡县| 南通市| 中西区| 西乌珠穆沁旗| 象州县| 新昌县| 屯门区| 巴林左旗| 祁连县| 伊川县| 定兴县| 罗甸县| 商河县| 浦城县| 乌恰县| 无为县| 申扎县| 香河县| 卢氏县| 金平| 鹤岗市| 丹棱县| 静海县| 周宁县| 剑阁县| 拜城县|