欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytorch介紹與安裝過程

 更新時(shí)間:2025年06月03日 11:52:26   作者:AI風(fēng)老師  
PyTorch因其直觀的設(shè)計(jì)、卓越的靈活性以及強(qiáng)大的動(dòng)態(tài)計(jì)算圖功能,迅速在學(xué)術(shù)界和工業(yè)界獲得了廣泛認(rèn)可,成為當(dāng)前深度學(xué)習(xí)研究和開發(fā)的主流工具之一,本文給大家介紹Pytorch介紹與安裝過程,感興趣的朋友一起看看吧

1、Pytorch介紹

PyTorch 是由 Facebook AI Research (FAIR) 團(tuán)隊(duì)開發(fā)并維護(hù)的一款開源深度學(xué)習(xí)框架,于 2016 年首次發(fā)布。它因其直觀的設(shè)計(jì)、卓越的靈活性以及強(qiáng)大的動(dòng)態(tài)計(jì)算圖功能,迅速在學(xué)術(shù)界和工業(yè)界獲得了廣泛認(rèn)可,成為當(dāng)前深度學(xué)習(xí)研究和開發(fā)的主流工具之一。

1.1、核心理念

PyTorch 最顯著的特點(diǎn)是其 “Pythonic” 的設(shè)計(jì)哲學(xué)和 動(dòng)態(tài)計(jì)算圖 (Dynamic Computational Graph) 機(jī)制。

  • Pythonic 設(shè)計(jì): PyTorch 深度融入 Python 生態(tài)系統(tǒng),其 API 設(shè)計(jì)自然、簡(jiǎn)潔,非常符合 Python 程序員的思維習(xí)慣。你可以像操作普通的 Python 對(duì)象(如 NumPy 數(shù)組)一樣操作張量(Tensor),使用標(biāo)準(zhǔn)的 Python 控制流(如 ifforwhile)來構(gòu)建模型結(jié)構(gòu)。這種無縫集成極大地降低了學(xué)習(xí)門檻,讓開發(fā)者能夠?qū)W⒂谀P驮O(shè)計(jì)和算法本身,而非框架的復(fù)雜性。
  • 動(dòng)態(tài)計(jì)算圖 (Define-by-Run): 這是 PyTorch 區(qū)別于早期靜態(tài)圖框架(如 TensorFlow 1.x)的關(guān)鍵。計(jì)算圖在代碼運(yùn)行時(shí)動(dòng)態(tài)構(gòu)建。每一步張量操作都會(huì)實(shí)時(shí)擴(kuò)展計(jì)算圖,并立即執(zhí)行。這種機(jī)制帶來了革命性的優(yōu)勢(shì):
    • 直觀的調(diào)試: 由于圖是動(dòng)態(tài)生成的,你可以像調(diào)試普通 Python 程序一樣,使用 print 語(yǔ)句、IDE 的斷點(diǎn)調(diào)試器逐行檢查張量的值和模型的行為,極大簡(jiǎn)化了復(fù)雜模型和訓(xùn)練過程的調(diào)試。
    • 無與倫比的靈活性: 動(dòng)態(tài)圖允許模型結(jié)構(gòu)在運(yùn)行時(shí)根據(jù)數(shù)據(jù)或條件動(dòng)態(tài)改變(如 RNN 中可變長(zhǎng)度序列處理、樹狀結(jié)構(gòu)網(wǎng)絡(luò)、條件計(jì)算)。這種靈活性對(duì)于前沿研究(如元學(xué)習(xí)、神經(jīng)架構(gòu)搜索)和構(gòu)建復(fù)雜模型至關(guān)重要。
    • 更易理解的代碼: 模型定義和訓(xùn)練循環(huán)的代碼流程清晰、線性,更易于閱讀和理解。

1.2、核心組件與功能

PyTorch 提供了一套完整的工具鏈來支持深度學(xué)習(xí)工作流:

  • 強(qiáng)大的張量庫(kù): torch.Tensor 是其核心數(shù)據(jù)結(jié)構(gòu),支持高效的 CPU 和 GPU 加速計(jì)算。它提供了豐富的數(shù)學(xué)運(yùn)算(線性代數(shù)、隨機(jī)數(shù)生成等),并高度兼容 NumPy(通過 .numpy() 和 torch.from_numpy() 輕松轉(zhuǎn)換)。
  • 自動(dòng)微分引擎 (Autograd): torch.autograd 模塊是 PyTorch 的基石。它通過在動(dòng)態(tài)計(jì)算圖上自動(dòng)追蹤張量操作,實(shí)現(xiàn)反向傳播時(shí)梯度的自動(dòng)計(jì)算。只需在張量上設(shè)置 .requires_grad=True,框架就會(huì)記錄所有相關(guān)操作,并在調(diào)用 .backward() 時(shí)自動(dòng)計(jì)算梯度。這極大地簡(jiǎn)化了梯度計(jì)算,讓開發(fā)者無需手動(dòng)推導(dǎo)和實(shí)現(xiàn)復(fù)雜的反向傳播。
  • 神經(jīng)網(wǎng)絡(luò)模塊 (torch.nn): 該模塊提供了構(gòu)建神經(jīng)網(wǎng)絡(luò)所需的所有基礎(chǔ)構(gòu)件:
    • 層 (Layers): 預(yù)定義了各種層(如 Linear, Conv2d, RNN, LSTM, Transformer, Dropout, BatchNorm 等)。
    • 損失函數(shù) (Loss Functions): 如 MSE, CrossEntropyLoss 等。
    • 優(yōu)化器 (Optimizers): 如 SGD, Adam, RMSprop 等,用于更新模型參數(shù)以最小化損失。
    • 容器 (Containers): nn.Module 是構(gòu)建所有模型的基類。通過繼承它并定義 forward 方法,可以輕松組合各種層來創(chuàng)建復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。nn.Module 還自動(dòng)管理參數(shù)、設(shè)備移動(dòng)(CPU/GPU)、序列化等。
  • 數(shù)據(jù)加載與處理 (torch.utils.data):
    • Dataset 類: 定義如何訪問單個(gè)樣本。
    • DataLoader: 負(fù)責(zé)高效地批量加載數(shù)據(jù)、打亂順序、多進(jìn)程預(yù)讀取等,是訓(xùn)練循環(huán)中數(shù)據(jù)供給的核心。
    • Transforms: 提供豐富的圖像和數(shù)據(jù)處理工具(如裁剪、旋轉(zhuǎn)、歸一化),用于數(shù)據(jù)增強(qiáng)和預(yù)處理。
  • GPU 加速: PyTorch 天然支持 CUDA。只需將張量或模型移動(dòng)到 GPU 設(shè)備(.to(‘cuda’)),即可利用 NVIDIA GPU 強(qiáng)大的并行計(jì)算能力,顯著加速模型訓(xùn)練和推理。
  • 分布式訓(xùn)練: torch.distributed 模塊提供了強(qiáng)大的工具(如 DistributedDataParallel - DDP),支持在多 GPU、多節(jié)點(diǎn)集群上進(jìn)行高效的數(shù)據(jù)并行和模型并行訓(xùn)練,極大縮短大型模型的訓(xùn)練時(shí)間。
  • TorchScript 和 TorchDynamo (PyTorch 2.x): 為了滿足生產(chǎn)環(huán)境對(duì)性能、部署和脫離 Python 環(huán)境運(yùn)行的需求,PyTorch 提供了:
    • TorchScript: 一種將 PyTorch 模型(代碼)轉(zhuǎn)換為可優(yōu)化、可序列化的中間表示的方法,可以在 C++ 等環(huán)境中高效運(yùn)行。
    • TorchDynamo (PyTorch 2.0+): 一個(gè)創(chuàng)新的即時(shí)(JIT)編譯器框架,結(jié)合了 torch.compile() API,能夠在不顯著改變用戶代碼的情況下,自動(dòng)加速模型訓(xùn)練和推理,性能提升顯著。
  • 豐富的生態(tài)系統(tǒng):
    • 領(lǐng)域庫(kù): TorchVision (CV), TorchText (NLP), TorchAudio (音頻) 提供了各自領(lǐng)域常用的數(shù)據(jù)集、模型架構(gòu)和轉(zhuǎn)換工具。
    • Hugging Face Transformers: PyTorch 是該流行庫(kù)的首選后端,提供了大量預(yù)訓(xùn)練的語(yǔ)言模型(如 BERT, GPT)。
    • PyTorch Lightning: 一個(gè)輕量級(jí)封裝庫(kù),將研究代碼與工程代碼解耦,簡(jiǎn)化了訓(xùn)練流程(如多 GPU、混合精度訓(xùn)練、日志記錄),加速研究向生產(chǎn)的轉(zhuǎn)化。
    • ONNX 支持: 方便模型導(dǎo)出到其他支持 ONNX 格式的推理引擎部署。
    • 部署工具: TorchServe, LibTorch (C++ API) 等支持模型在各種環(huán)境下的部署。

1.3、適用場(chǎng)景與優(yōu)勢(shì)總結(jié)

  • 研究與原型開發(fā): 動(dòng)態(tài)圖的靈活性和易調(diào)試性使其成為學(xué)術(shù)研究和快速實(shí)驗(yàn)新想法的理想平臺(tái)。大量前沿論文的官方實(shí)現(xiàn)都基于 PyTorch。
  • 教學(xué)與學(xué)習(xí): Pythonic 的設(shè)計(jì)和直觀的調(diào)試使其成為學(xué)習(xí)深度學(xué)習(xí)的絕佳工具。
  • 計(jì)算機(jī)視覺 (CV): 在圖像分類、目標(biāo)檢測(cè)、分割等任務(wù)中占據(jù)主導(dǎo)地位。
  • 自然語(yǔ)言處理 (NLP): 是 Transformer 等現(xiàn)代 NLP 模型實(shí)現(xiàn)和預(yù)訓(xùn)練模型庫(kù)(如 Hugging Face)的主要支撐。
  • 強(qiáng)化學(xué)習(xí)、生成模型等: 其靈活性同樣適用于這些新興且結(jié)構(gòu)多變的領(lǐng)域。
  • 生產(chǎn)部署: 隨著 TorchScript、TorchDynamo (torch.compile()) 以及部署工具鏈的成熟,PyTorch 在生產(chǎn)環(huán)境中的應(yīng)用也日益廣泛。

1.4、優(yōu)勢(shì)總結(jié)

  • 易用性與靈活性: Pythonic 設(shè)計(jì) + 動(dòng)態(tài)圖,開發(fā)調(diào)試效率高。
  • 強(qiáng)大的社區(qū)與生態(tài): 擁有龐大且活躍的開發(fā)者社區(qū),豐富的庫(kù)、模型、教程和資源。
  • 卓越的研究支持: 是學(xué)術(shù)界的寵兒,最新研究成果往往首選 PyTorch 實(shí)現(xiàn)。
  • 成熟的工業(yè)應(yīng)用: 從研究到生產(chǎn)的路徑日益順暢,被眾多科技巨頭采用。
  • 持續(xù)創(chuàng)新: 開發(fā)團(tuán)隊(duì)(Meta 和開源社區(qū))積極推動(dòng),不斷引入新特性(如 PyTorch 2.x 的編譯加速)。

2、安裝Pytorch

2.1、通過官網(wǎng)安裝

 ubuntu系統(tǒng)安裝cuda驅(qū)動(dòng)、cudatoolkit、cuDNN教程見:

1、安裝cuda驅(qū)動(dòng),cuda toolkit和cuDNN

查看cuda版本:

(llm) wangqiang@wangqiang:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

 最新的pytorch只支持pip安裝,去官網(wǎng)Get Started查看PyTorch的安裝需求和安裝命令。

ubuntu系統(tǒng)安裝pytorch 12.8:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

查看安裝的pytorch版本:

方式1:

import torch
print(torch.__version__)

方式2:

終端中運(yùn)行:

(llm) wangqiang@wangqiang:~$ pip show torch
Name: torch
Version: 2.7.0+cu128
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3-Clause
Location: /home/wangqiang/anaconda3/envs/llm/lib/python3.12/site-packages
Requires: filelock, fsspec, jinja2, networkx, nvidia-cublas-cu12, nvidia-cuda-cupti-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-runtime-cu12, nvidia-cudnn-cu12, nvidia-cufft-cu12, nvidia-cufile-cu12, nvidia-curand-cu12, nvidia-cusolver-cu12, nvidia-cusparse-cu12, nvidia-cusparselt-cu12, nvidia-nccl-cu12, nvidia-nvjitlink-cu12, nvidia-nvtx-cu12, setuptools, sympy, triton, typing-extensions
Required-by: torchaudio, torchvision

卸載pytorch

sudo  pip uninstall torch torchvision torchaudio
# 刪除緩存和配置文件:
rm -rf ~/.cache/torch
rm -rf ~/.local/bin/torch_shm_manager

2.2、從源碼安裝

如果需要從源代碼安裝PyTorch,或者想要嘗試最新的開發(fā)版本,可以使用以下命令:

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
python setup.py install

2.3、通過pip安裝

pip install torch torchvision torchaudio

默認(rèn)安裝的是 CPU 版本(不包含 GPU 支持),除非在系統(tǒng)環(huán)境已經(jīng)明確配置了 CUDA 并且 PyPI 源中存在對(duì)應(yīng)的 GPU 版本。安裝的版本是 PyPI 上的最新穩(wěn)定版(可能不是與電腦硬件或Python 版本完全兼容的版本)。

3、Pytorch參考鏈接

PyTorch 官網(wǎng) :https://pytorch.org/ 

PyTorch 官方入門教程:Get Started

PyTorch 官方文檔:PyTorch documentation — PyTorch 2.7 documentation 

PyTorch 源代碼:https://github.com/pytorch/pytorch

PyTorch 官方英文教程Welcome to PyTorch Tutorials — PyTorch Tutorials 2.7.0+cu126 documentation

PyTorch 官方中文文檔主頁(yè) - PyTorch中文文檔

RUNOOB PyTorch教程:PyTorch 教程 | 菜鳥教程

到此這篇關(guān)于Pytorch介紹與安裝的文章就介紹到這了,更多相關(guān)Pytorch介紹與安裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格

    基于Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格

    Markdown(也簡(jiǎn)稱md)作為一種輕量級(jí)標(biāo)記語(yǔ)言,因其易寫易讀,效果美觀大方,不僅被眾多網(wǎng)站使用,也是程序員們做筆記、寫文檔的首選。本文將利用Python實(shí)現(xiàn)Excel轉(zhuǎn)Markdown表格,感興趣的可以了解一下
    2022-04-04
  • Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)

    Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)

    本篇文章給大家整理了用python實(shí)現(xiàn)登陸注冊(cè)驗(yàn)證的基本會(huì)員功能,對(duì)此有需要的朋友可以參考下。
    2018-06-06
  • Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲數(shù)據(jù)抽取

    Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲數(shù)據(jù)抽取

    這篇文章主要介紹了Python使用正則表達(dá)式實(shí)現(xiàn)爬蟲數(shù)據(jù)抽取,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python中使用gzip模塊壓縮文件的簡(jiǎn)單教程

    Python中使用gzip模塊壓縮文件的簡(jiǎn)單教程

    這篇文章主要介紹了Python中使用gzip模塊壓縮文件的簡(jiǎn)單教程,本文的例子主要針對(duì)類UNIXZ系統(tǒng),需要的朋友可以參考下
    2015-04-04
  • python素?cái)?shù)篩選法淺析

    python素?cái)?shù)篩選法淺析

    這篇文章主要為大家詳細(xì)介紹了python素?cái)?shù)篩選法的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 玩轉(zhuǎn)Python圖像處理之二值圖像腐蝕詳解

    玩轉(zhuǎn)Python圖像處理之二值圖像腐蝕詳解

    這篇文章主要給大家介紹了關(guān)于Python圖像處理之二值圖像腐蝕的相關(guān)資料,對(duì)原圖進(jìn)行二值化后,選擇不同的結(jié)構(gòu)元素對(duì)其進(jìn)行膨脹和腐蝕運(yùn)算處理,并仿真出圖像結(jié)果,需要的朋友可以參考下
    2021-09-09
  • Python實(shí)現(xiàn)Linux命令xxd -i功能

    Python實(shí)現(xiàn)Linux命令xxd -i功能

    這篇文章主要介紹了Python實(shí)現(xiàn)Linux命令xxd -i功能的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python中time庫(kù)的實(shí)例使用方法

    python中time庫(kù)的實(shí)例使用方法

    在本篇文章里的是關(guān)于python中time庫(kù)的實(shí)例使用方法以及相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • 在python中計(jì)算ssim的方法(與Matlab結(jié)果一致)

    在python中計(jì)算ssim的方法(與Matlab結(jié)果一致)

    這篇文章主要介紹了在python中計(jì)算ssim的方法(與Matlab結(jié)果一致),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • python3 Scrapy爬蟲框架ip代理配置的方法

    python3 Scrapy爬蟲框架ip代理配置的方法

    Scrapy是用python實(shí)現(xiàn)的一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。使用Twisted高效異步網(wǎng)絡(luò)框架來處理網(wǎng)絡(luò)通信。這篇文章主要介紹了python3 Scrapy爬蟲框架ip代理配置,需要的朋友可以參考下
    2020-01-01

最新評(píng)論