最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch介紹與安裝過程

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

1、Pytorch介紹

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

1.1、核心理念

PyTorch 最顯著的特點是其 “Pythonic” 的設計哲學和 動態(tài)計算圖 (Dynamic Computational Graph) 機制。

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

1.2、核心組件與功能

PyTorch 提供了一套完整的工具鏈來支持深度學習工作流:

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

1.3、適用場景與優(yōu)勢總結

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

1.4、優(yōu)勢總結

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

2、安裝Pytorch

2.1、通過官網安裝

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

1、安裝cuda驅動,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安裝,去官網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:

終端中運行:

(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

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

3、Pytorch參考鏈接

PyTorch 官網 :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 官方中文文檔主頁 - PyTorch中文文檔

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

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

相關文章

  • python獲取本機外網ip的方法

    python獲取本機外網ip的方法

    這篇文章主要介紹了python獲取本機外網ip的方法,可實現(xiàn)從外網顯示IP的網站獲取本機IP的功能,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python多分支if語句的使用

    Python多分支if語句的使用

    這篇文章主要介紹了Python多分支if語句的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • pandas中DataFrame的merge操作的實現(xiàn)

    pandas中DataFrame的merge操作的實現(xiàn)

    本文主要介紹了pandas中DataFrame的merge操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • python實現(xiàn)數據寫入excel表格

    python實現(xiàn)數據寫入excel表格

    這篇文章主要為大家詳細介紹了python實現(xiàn)數據寫入excel表格,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 使用Python去掉文本中表情符號(Emoji)的四種方案

    使用Python去掉文本中表情符號(Emoji)的四種方案

    本文介紹了在自然語言處理、情感分析或數據清洗時,處理Emoji符號的方法,介紹了使用正則表達式、unicodedata庫、emoji第三方庫等方案,針對不同場景選擇合適的方案,需要的朋友可以參考下
    2026-04-04
  • 基于Python打造一個全能文本處理工具

    基于Python打造一個全能文本處理工具

    這篇文章主要介紹了一個基于Python+Tkinter開發(fā)的全功能本地化文本處理工具,它不僅具備基礎的格式轉換功能,更集成了中文特色處理等實用功能,有需要的可以了解下
    2025-04-04
  • 使用python 獲取進程pid號的方法

    使用python 獲取進程pid號的方法

    這篇文章主要介紹了使用python 獲取進程pid號的方法,需要的朋友可以參考下
    2014-03-03
  • 利用Python代碼實現(xiàn)模擬動態(tài)指針時鐘

    利用Python代碼實現(xiàn)模擬動態(tài)指針時鐘

    這篇文章主要為大家詳細介紹了如何利用python和C++代碼實現(xiàn)模擬動態(tài)指針時鐘,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • Python基于pillow判斷圖片完整性的方法

    Python基于pillow判斷圖片完整性的方法

    這篇文章主要介紹了Python基于pillow判斷圖片完整性的方法,結合實例形式簡單分析了pillow的安裝及圖片完整性判斷的相關操作技巧,需要的朋友可以參考下
    2016-09-09
  • Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    這篇文章主要介紹了Python?ArcPy批量掩膜、重采樣大量遙感影像,本文介紹基于Python中ArcPy模塊,對大量柵格遙感影像文件進行批量掩膜與批量重采樣的操作,需要的朋友可以參考下
    2023-03-03

最新評論

盐边县| 台前县| 肃南| 那坡县| 邛崃市| 闽侯县| 黑河市| 章丘市| 博客| 保定市| 宝坻区| 溧阳市| 峡江县| 靖安县| 昌黎县| 望都县| 延吉市| 常熟市| 湾仔区| 达日县| 吉木萨尔县| 利川市| 吉安县| 城固县| 襄樊市| 无锡市| 刚察县| 德保县| 建德市| 资源县| 太湖县| 玉树县| 孙吴县| 孟州市| 西青区| 临夏市| 衡南县| 社会| 仙桃市| 朝阳县| 都江堰市|