【TensorFlow】P0 Windows GPU 安裝 TensorFlow、CUDA Toolkit、cuDNN

Windows 安裝 TensorFlow、CUDA Toolkit、cuDNN

  • 整體流程概述
    • TensorFlow 與 CUDA Toolkit
      • TensorFlow 是一個基于數據流圖的深度學習框架
      • CUDA 充分利用 NIVIDIA GPU 的計算能力
      • CUDA Toolkit
    • cuDNN
  • 安裝詳細流程
    • 整理流程一:安裝 CUDA Toolkit
      • 步驟一:獲取CUDA版本信息
      • 步驟二:下載安裝 CUDA Toolkit
      • 步驟三:按照默認步驟安裝
      • 步驟四:檢查CUDA安裝成功
    • 整體流程二:安裝cuDNN
      • 步驟一:下載 cuDNN
      • 步驟二:解壓縮下載的 zip,并將其中的文件復制到 CUDA Toolkit 的相應目錄
      • 步驟三:配置環境變量
    • 整體流程三:安裝 TensorFlow-gpu
      • 步驟一:Anaconda中創建新的環境
      • 步驟二:查看下載 tensorflow-gpu 的版本號
      • 步驟三:檢查整體流程安裝成功
      • 步驟四:檢查 cuDNN 安裝成功可用


整體流程概述

TensorFlow 與 CUDA Toolkit

TensorFlow 是一個基于數據流圖的深度學習框架

  • TensorFlow是一個基于數據流圖的深度學習框架,它使用張量(Tensor)作為數據的基本單位,在GPU上進行張量運算可以極大地提高深度學習模型的訓練和推理速度。而CUDA則提供了在GPU上執行高性能并行計算所需的API和運行時環境,能夠實現深度學習任務的加速。

CUDA 充分利用 NIVIDIA GPU 的計算能力

  • 安裝 TensorFlow 之前需要首先安裝 CUDA,準確的說是 CUDA Toolkit。是因為 TensorFlow 使用 CUDA 作為其后端計算引擎。CUDA 是由 NVIDIA 提供的并行計算平臺和編程模型,可以充分利用 NVIDIA GPU 的計算能力,實現高性能的并行計算。

CUDA Toolkit

  • 即 TensorFlow 默認會安裝與系統和 GPU 兼容的版本,這需要依賴 CUDA Toolkit。CUDA Toolkit 包含 GPU 驅動程序、CUDA Runtime 庫和相關工具,使 TensorFlow 能夠與 NVIDIA GPU 進行交互并利用其計算能力。

cuDNN

  • 在安裝 TensorFlow 之前需要安裝 cuDNN(CUDA Deep Neural Network library),是因為 TensorFlow 使用 cuDNN 來加速深度神經網絡的計算。cuDNN 是由 NVIDIA 開發的用于深度學習的 GPU 加速庫,它針對深度神經網絡的計算任務進行了高度優化,可以顯著加快訓練和推理過程。

  • TensorFlow 通過調用 cuDNN 的 API 來利用 GPU 上的硬件加速功能,特別是在卷積操作等深度學習任務中,cuDNN 能夠提供很大的性能提升。在沒有 cuDNN 的情況下,TensorFlow 會使用 CPU 來執行這些計算任務,但是由于 CPU 的計算速度相對較慢,處理大規模的深度學習模型時可能會非常耗時。


安裝詳細流程

在這里插入圖片描述

整理流程一:安裝 CUDA Toolkit

步驟一:獲取CUDA版本信息

桌面 > 右鍵 > NVIDIA控制面板 > 查看系統信息 > 點擊組件 > 查看 NVCUDA64.DLL 的 CUDA版本 > 成功獲取CUDA版本信息;

在這里插入圖片描述


步驟二:下載安裝 CUDA Toolkit

訪問 CUDA Toolkit Archive https://developer.nvidia.com/cuda-toolkit-archive 下載對應版本的 CUDA Toolkit,根據步驟一中的 CUDA 版本信息(例如我的CUDA版本為12.0.134),選擇下載 Toolkit 版本:

在這里插入圖片描述

并開始下載,耐心等待10分鐘;

在這里插入圖片描述


步驟三:按照默認步驟安裝

按照向導進行安裝即可;

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
請添加圖片描述


步驟四:檢查CUDA安裝成功

安裝完成后,你可以在命令提示符或 PowerShell 中輸入以下命令來驗證 CUDA 是否成功安裝:

nvcc -V

或者同:

nvcc --version

在這里插入圖片描述

如果安裝成功,將會輸出 CUDA 的版本號。下面我們進行安裝 cuDNN;


整體流程二:安裝cuDNN

步驟一:下載 cuDNN

  • 訪問 cuDNN 下載網址:https://developer.nvidia.com/rdp/cudnn-download;

  • 出現下圖界面說明你需要首先登陸你的 NIVIDIA 賬戶;

在這里插入圖片描述

  • 出現如下界面,需要根據本機的 CUDA 版本選擇安裝,如何獲取本機的 CUDA 版本?如下:

獲取CUDA版本信息:
桌面 > 右鍵 > NVIDIA控制面板 > 查看系統信息 > 點擊組件 > 查看 NVCUDA64.DLL 的 CUDA版本 > 成功獲取CUDA版本信息,即 12.x

在這里插入圖片描述

  • 根據上述獲得的 CUDA 版本信息,選擇下載 12.x 版本的cuDNN;

在這里插入圖片描述

步驟二:解壓縮下載的 zip,并將其中的文件復制到 CUDA Toolkit 的相應目錄

  • 解壓縮后應該包含三個文件夾和一個文件:
    binincludelibLICENSE

在這里插入圖片描述

  • 將三個文件夾中的文件分別復制到各自的 CUDA Toolkit 目錄中
    • 首先打開 bin 文件夾:
      在這里插入圖片描述
      復制全部文件,粘貼到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin 文件夾中;

    • 然后打開 include 文件夾:
      在這里插入圖片描述
      同樣復制全部文件,粘貼到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\include 文件夾中;

    • 最后打開 lib\x64 文件夾:
      在這里插入圖片描述
      將全部文件粘貼到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\lib\x64 文件夾中;

步驟三:配置環境變量

  • 確保將 CUDA 和 cuDNN 的安裝路徑添加到系統的環境變量中,這樣 TensorFlow 才能正確地找到這些庫和頭文件;
  • cuDNN 中不會默認配置環境變量,需要讀者手動配置環境變量:
  • 首先打開 環境變量 path 欄目:

在這里插入圖片描述

  • 將解壓縮后的 cuDNN 文件夾的 \bin 絕對地址復制粘貼:
    C:\Users\xhong\Downloads\cudnn-windows-x86_64-8.9.3.28_cuda12-archive\cudnn-windows-x86_64-8.9.3.28_cuda12-archive\bin

在這里插入圖片描述

完成!

cuDNN的完成檢查需要等待下一步 tensorflow-gpu 安裝完成后;


整體流程三:安裝 TensorFlow-gpu

  • 在安裝完 cuDNN 后,再安裝 TensorFlow 時,TensorFlow 將能夠識別到你的 cuDNN 并自動與之集成,從而在 GPU 上運行深度學習任務時獲得顯著的加速效果。總之,安裝cuDNN是為了充分發揮GPU的計算能力,提高TensorFlow的性能和效率,特別是在處理復雜的深度學習模型時,cuDNN的優化可以為你節省大量時間。

步驟一:Anaconda中創建新的環境

  • 建議在 Anaconda Prompt 中創建一個新的環境,因為我的 base 環境已經安裝好了 gpu 版本的 torch,而且如果都放在一個環境中更新環境會比較耗時;

  • 創建環境 tensorflow

    conda create -n tensorflow pip python=3.8
    
  • 激活環境 tensorflow

    activate tensorflow
    

    在這里插入圖片描述

步驟二:查看下載 tensorflow-gpu 的版本號

https://www.tensorflow.org/install/source_windows?hl=zh-cn
網址最下方有一個表格,列有 GPU 的 CUDA、cuDNN 對照的安裝的 tensorflow-gpu 版本號

在這里插入圖片描述

  • 很明顯,根據我的 cuDNN(8.9.3.28) 與 CUDA(12.0.134) 版本的短板效應,我穩妥選擇 tensorflow_gpu-2.4.0 版本,建議讀者到這里也這么選擇,穩定能用就是了;

  • 輸入命令:

    pip install --ignore-installed --upgrade tensorflow_gpu==2.4.0
    # 注意將2.4.0替換為你的版本號
    

等待安裝完成!

步驟三:檢查整體流程安裝成功

  • 打開 Pycharm,記得將環境從 base 切換到剛剛創建配置的 tensorflow:

    import tensorflow as tf# 檢查是否有可用的 GPU 設備
    if tf.config.list_physical_devices('GPU'):print('GPU可用')
    else:print("GPU不可用")
    

    在這里插入圖片描述

  • 出現上圖所示 True,即完成安裝步驟,若出現 curand64_10.dll is not found 等標識,即說明下載安裝相關 CUDA Toolkit 版本出現意外錯誤,解決辦法為通過將文件中已含有的 curand64_11.dll 文件重命名可解決問題,如下圖所示:

    在這里插入圖片描述

  • bin文件目錄地址為:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.0\bin

  • 安裝 CUDA 后,再安裝 TensorFlow 時,TensorFlow 將會自動與 CUDA 進行集成,并在 GPU 上利用 CUDA 的功能來加速深度學習任務。這樣,TensorFlow 能夠更高效地執行張量計算,從而顯著提高模型訓練和推理的速度。

步驟四:檢查 cuDNN 安裝成功可用

import tensorflow as tf# 檢查TensorFlow-gpu是否可用
print("TensorFlow-gpu available:", tf.test.is_gpu_available())# 檢查cuDNN是否可用
print("cuDNN version:", tf.config.list_physical_devices('GPU'))

在這里插入圖片描述
完結撒花!!!!~~~~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

XML 數據傳輸格式

目錄 XML簡介 一、初識XML 1.什么是 XML? 2.XML 和 HTML 之間的差異 3.XML 不會做任何事情 4.通過 XML 您可以發明自己的標簽 5.XML 不是對 HTML 的替代 二、XML 用途 1.XML 把數據從 HTML 分離 2.XML 簡化數據共享 3.XML 簡化數據傳輸 三、XML 樹結構 1.一個 XML 文…

QML HTTP 請求

作者: 一去、二三里 個人微信號: iwaleon 微信公眾號: 高效程序員 在 Web 開發中,實現與服務器的通信至關重要,其中 HTTP 便是最常用的方式之一。它是一種客戶端 - 服務器協議,客戶端向服務器發送請求,服務器則返回響應。常被用于在瀏覽器/客戶端和 Web 服務器之間傳輸消…

mysql執行計劃—— explain

使用explain關鍵字可以直觀的查看一條SQL語句的執行計劃,可以幫助我們選擇合適的索引和優化SQL語句,查詢結構總共有12列。下面列舉幾種需要重點掌握的: 1.id select的標識符,id越大,表示優先級越高,越先執…

VB+SQL酒店客房管理設計與實現

摘要 二十一世紀是信息技術的時代,計算機已經應用到了各行各業中。采用計算機信息管理技術,可以有效的降低企業的管理成本,提高企業內部的工作效率。 本文從天天賓館客房客房管理的一般流程出發,設計了一套天天賓館客房管理信息系統,它可以管理天天賓館客房中所有的客房的…

1. 如何爬取自己的CSDN博客文章列表(獲取列表)(博客列表)(手動+python代碼方式)

文章目錄 寫在最前步驟打開chrome瀏覽器,登錄網頁按pagedown一直往下刷呀刷呀刷,直到把自己所有的博文刷出來然后我們按F12,點擊選取元素按鈕然后隨便點一篇博文,產生如下所示代碼然后往上翻,找到頭,復制然…

1.2 操作系統原理和常見命令

操作系統原理和常見命令 文章目錄 操作系統原理和常見命令操作系統原理操作系統的概述進程管理內存管理文件系統設備管理安全性操作系統的角色 操作系統中的常見命令和操作 操作系統原理 操作系統的概述: 定義:操作系統是控制和管理計算機硬件與軟件資源…

Java-類型和變量(基于C語言的補充)

一個簡單的Java程序 args){ System.out.println("Hello,world"); } }通過上述代碼,我們可以看到一個完整的Java程序的結構,Java程序的結構由如下三個部分組成: 1.源文件(擴展名為*.java):源文件帶有類的定義…

ios消息推送例子

通過Apple推送服務,將消息發送給特定的ios客戶端,這是服務器端實例代碼。需要客戶端的voip key值,以及相應的客戶端回調接口,支持ios9.0以上版本。 下載地址:https://download.csdn.net/download/m0_37567738/8821559…

[保研/考研機試] KY7 質因數的個數 清華大學復試上機題 C++實現

描述 求正整數N(N>1)的質因數的個數。 相同的質因數需要重復計算。如1202*2*2*3*5&#xff0c;共有5個質因數。 輸入描述&#xff1a; 可能有多組測試數據&#xff0c;每組測試數據的輸入是一個正整數N&#xff0c;(1<N<10^9)。 輸出描述&#xff1a; 對于每組數…

leetcode 6914. 翻倍以鏈表形式表示的數字

給你一個 非空 鏈表的頭節點 head &#xff0c;表示一個不含前導零的非負數整數。 將鏈表 翻倍 后&#xff0c;返回頭節點 head 。 示例 1&#xff1a; 輸入&#xff1a;head [1,8,9] 輸出&#xff1a;[3,7,8] 解釋&#xff1a;上圖中給出的鏈表&#xff0c;表示數字 189 。返…

Photoshop快捷鍵大全

Photoshop是一款非常強大的圖像處理軟件&#xff0c;它提供了許多快捷鍵&#xff0c;可以幫助用戶更快地完成操作。熟練掌握這些快捷鍵&#xff0c;可以大大提高工作效率&#xff0c;讓您更加專注于創作。 Photoshop快捷鍵匯總&#xff1a; 一、基本操作快捷鍵 1. 新建文檔…

什么是CSS中的漸變(gradient)?如何使用CSS創建線性漸變和徑向漸變?

聚沙成塔每天進步一點點 ? 專欄簡介? 漸變&#xff08;Gradient&#xff09;在CSS中的應用? 線性漸變&#xff08;Linear Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 徑向漸變&#xff08;Radial Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 寫…

第06天 靜態代理和動態代理

?作者簡介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;熱愛Java后端開發者&#xff0c;一個想要與大家共同進步的男人&#x1f609;&#x1f609; &#x1f34e;個人主頁&#xff1a;Leo的博客 &#x1f49e;當前專欄&#xff1a;每天一個知識點 ?特色專欄&#xff1a…

36 | 銀行貸款數據分析

本文將以銀行貸款數據分析為主題,深入探討如何運用數據科學的方法,揭示銀行貸款領域的內在規律和趨勢。通過對貸款數據的分析,我們能夠洞察不同類型貸款的分布情況、貸款金額的變化趨勢,以及借款人的特征和還款情況等關鍵信息。 通過運用Python編程語言及相關的數據分析工…

arcgis定義投影與投影

1、定義 地理坐標系&#xff08;GCS&#xff09;&#xff1a;利用地球表面的經緯度表示的坐標系統。一般單位為度。投影坐標系&#xff08;PCS&#xff09;&#xff1a;利用數學換算將三維地球表面上的經緯度坐標轉換到二維平面上的坐標系統。一般單位為米。可以認為&#xff…

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介紹】

文章目錄 ARMv9 系列CoreARM Cortex-A510 介紹ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心設計&#xff0c;三款新CPU分別是旗艦核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU&#xff0c;三款新GPU核心則…

【Unity每日一記】向量操作攝像機的移動(向量加減)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;uni…

TCP消息傳輸可靠性保證

TCP鏈接與斷開 -- 三次握手&四次揮手 三次握手 TCP 提供面向有連接的通信傳輸。面向有連接是指在數據通信開始之前先做好兩端之間的準備工作。 所謂三次握手是指建立一個 TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立。在socket編程中&#xff0c;這一…

算法模版,今天開始背

二分查找算法 int left_bound(int[] nums, int target) {int left 0, right nums.length - 1;// 搜索區間為 [left, right]while (left < right) {int mid left (right - left) / 2;if (nums[mid] < target) {// 搜索區間變為 [mid1, right]left mid 1;} else if …

ubuntu更換國內apt源

ubuntu必備操作 1 更換apt鏡像源 備份鏡像 cp /etc/apt/sources.list /etc/apt/sources.list.bak查看自己ubuntu版本 # 查看自己的codename #查看自己的ubuntu版本[注意關注&#xff1a;DISTRIB_CODENAME&#xff0c;發行代號] cat /etc/*release# DISTRIB_CODENAMEcosmic …