pytorch 包介紹

立体风發表於2024-05-25

概括

根據pytorch官網介紹的安裝pytorch命令,執行 pip3 install torch torchvision torchaudio 後,出現一堆相關包,現介紹如下,記錄並熟記。

核心包

  1. torch:也稱為 PyTorch,是一個開源的機器學習庫,主要用於深度學習。它提供了張量計算(類似於 NumPy)和 GPU 加速。
  2. torchvision:是 PyTorch 的一個擴充套件庫,專門用於計算機視覺任務。它包含常用的資料集、模型和影像處理工具。
  3. torchaudio:是 PyTorch 的一個擴充套件庫,專門用於音訊處理。它提供了音訊資料的載入、轉換和模型。

依賴包

安裝 PyTorch 及其擴充套件庫時,會涉及到很多其他包和庫,這些包用於提供底層功能、最佳化效能或處理其他特定任務:

  1. mpmath:一個 Python 庫,用於執行任意精度的浮點數運算。
  2. typing-extensions:提供了 Python 標準庫中 typing 模組的新功能,這些功能可能在將來會被新增到標準庫中。
  3. sympy:用於符號數學計算的 Python 庫。
  4. pillow:一個 Python 影像處理庫。
  5. nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12:這些是 NVIDIA 提供的庫,用於在 GPU 上進行高效計算。它們涵蓋了各種加速計算的功能,包括隨機數生成(curand)、FFT(cufft)、基本線性代數(cublas)、稀疏矩陣運算(cusparse)、深度神經網路加速(cudnn)、解線性方程(cusolver)等。
  6. numpy:一個常用的科學計算庫,提供支援大型多維陣列和矩陣的操作,以及大量的數學函式庫。
  7. networkx:用於建立、操作和研究複雜網路結構的 Python 庫。
  8. MarkupSafe:一個用於標記安全字串的庫,通常用於防止 HTML 注入。
  9. fsspec:一個檔案系統規範介面,可以與多個檔案系統進行互動。
  10. filelock:提供一個簡單的跨平臺檔案鎖機制。
  11. jinja2:一個用於 Python 的現代和設計友好的模板引擎,通常用於生成 HTML 檔案。

關係與作用

  • torch 是主要的深度學習框架,需要使用 GPU 加速和科學計算庫,因此依賴於多個 NVIDIA 庫(如 nvidia-cublas-cu12, nvidia-cudnn-cu12)和科學計算庫(如 numpy)。
  • torchvisiontorchaudio 分別用於計算機視覺和音訊處理,依賴於 torch 提供的核心功能,並且可能依賴於影像處理庫(如 pillow)和音訊處理庫。
  • 這些 NVIDIA 庫 提供了對 GPU 的支援,使得 PyTorch 可以利用 GPU 加速深度學習計算。
  • 其他庫如 networkx, sympy, MarkupSafe, jinja2 等提供了輔助功能,支援資料處理、符號計算、模板引擎等任務。

這些包的組合使得 PyTorch 及其擴充套件庫能夠高效地處理深度學習任務,特別是在有 GPU 支援的情況下,大大提高了計算效能和處理能力。

相關文章