日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

PyTorch C++ API libtorch 简介

發布時間:2025/3/8 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PyTorch C++ API libtorch 简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PyTorch C++ API libtorch 簡介

翻譯自 PyTorch 官方文檔:https://pytorch.org/cppdocs/index.html#acknowledgements

整體劃分

根據 PyTorch 官方文檔 的介紹,PyTorch的C++ API可以粗略分為以下五個部分:

  • ATen:基礎的張量和數學計算庫,其他的部分都以此為基礎。
  • Autograd:多 ATen 的擴展,包含自動微分功能。
  • C++ Frontend:用于訓練和驗證機器學習模型的高層架構。
  • TorchScript:TorchScipt JIT 編譯器 / 解釋器的接口。
  • C++ Extensions:一系列使用 C++ 和 CUDA 例程擴展 Python API 的方法。

ATen

ATen 是一個基礎的張量庫,幾乎所有 PyTorch 中的 Python 和 C++ 接口的以此為基礎。ATen 提供了一個核心的 Tensor 類,并定義了它的幾百種操作。大部分這些操作既可以在 CPU 上進行,也可以在 GPU 上進行。Tensor 類可以根據其類型動態地調度它們。一個 ATen 的小例子:

#include <ATen/ATen.h>at::Tensor a = at::ones({2, 2}, at::kInt); at::Tensor b = at::randn({2, 2}); auto c = a + b.to(at::kInt);

Tensor 類在 ATen 中所有其他的符號都可以在 at:: 命名空間中,可參考文檔。

Autograd

Autograd 是 PyTorch 的 C++ API 的一部分,它通過增加自動求導功能擴展增強了 Tensor 類。自動求導系統記錄了 Tensor 的操作來形成一張自動求導圖。并在該圖的葉節點上調用 backward() 通過跨越圖中的函數和張量網絡執行反向模式微分,最終產生梯度。以下是一個示例:

#include <torch/csrc/autograd/variable.h> #include <torch/csrc/autograd/function.h>torch::Tensor a = torch::ones({2, 2}, torch::requires_grad()); torch::Tensor b = torch::randn({2, 2}); auto c = a + b; c.backward(); // a.grad()將會保存c關于a的導數

ATen 中的類 at::Tensor 默認是不可微的。要添加 Autograd API 提供的張量的可微性,要使用torch:: 命名空間而不是 at:: 命名空間的張量工廠函數。也就是說,使用 at::ones 創建的張量是不可微的,但使用torch::ones 創建的張量是可微的。

C++ Frontend

PyTorch C++ 前端為神經網絡和通用 ML(機器學習)研究和生產用例提供了一個高級的純 C++ 建模接口,在設計和提供的功能上很大程度上與 Python API 保持一致。C++ 前端包括以下內容:

  • 通過多層模塊系統(如torch.nn.Module)定義機器學習模型的接口;
  • 一些已有模塊的的常見的建模方法(例如卷積、RNN、BN等)的“標準庫”;
  • 優化器 API,包括流行優化器的實現,如 SGD、Adam、RMSprop 等;
  • 一系列表示數據集和數據處理管道的方法,包括在多個 CPU 內核上并行加載數據的功能;
  • 用于保存和加載訓練會話 checkpoint 的序列化格式(如torch.utils.data.DataLoader);
  • 將模型自動并行化到多個 GPU(如torch.nn.parallel.DataParallel);
  • 支持使用pybind11輕松將C++模型綁定到Python的代碼;
  • TorchScript JIT 編譯器的入口點;
  • 有助于與 ATen 和 Autograd API 接口的有用實用程序。

有關C++ 前端的更詳細說明,可參閱此文檔。 與 C++ 前端相關的torch::命名空間的相關部分包括torch::nn、 torch::optim、 torch::data、 torch::serialize、 torch::jit 和torch::python。C++ 前端的示例可以在此存儲庫中找到,該存儲庫正在持續且積極地擴展。

一般不推薦用 ATen 和 Autograd,除非有定制化的需求,否則建議直接使用更穩定的 C++ 前端

TorchScript

TorchScript 是一種 PyTorch 模型的表示,可以被 TorchScript 編譯器理解、編譯和序列化。從根本上說,TorchScript 本身就是一種編程語言。它是使用 PyTorch API 的 Python 子集。TorchScript 的 C++ 接口包含三個主要功能:

  • 一種在 Python 中定義的用于加載和執行序列化 TorchScript 模型的機制;
  • 用于定義擴展 TorchScript 標準操作庫的自定義操作符的 API;
  • 從 C++ 實時編譯 TorchScript 程序。

如果您想盡可能在 Python 中定義模型,但隨后將它們導出到 C++ 以用于生產環境和非 Python 推理,則第一種機制可能對您很感興趣。您可以通過此鏈接了解更多信息。第二個 API 涉及您希望使用自定義算子擴展 TorchScript 的場景,這些算子同樣可以在推理期間從 C++ 序列化和調用。最后,torch::jit::compile 函數可用于直接從 C++ 訪問 TorchScript 編譯器。

C++ Extension

C++ Extension 提供了一種訪問上述所有接口的簡單而強大的方法,目的是擴展 PyTorch 的常規 Python 用例。C++ 擴展最常用于在 C++ 或 CUDA 中實現自定義算子。C++ 擴展 API 沒有向 PyTorch C++ API 添加任何新功能。而是提供了與 Python setuptools 的集成以及允許從 Python 訪問 ATen、Autograd 和其他 C++ API 的 JIT 編譯機制來進行自定義擴展。要了解有關 C++ 擴展 API 的更多信息,請閱讀 本教程。

Ref:

https://pytorch.org/cppdocs/index.html#acknowledgements

總結

以上是生活随笔為你收集整理的PyTorch C++ API libtorch 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线免费观看日韩视频 | 亚洲精品视频免费在线观看 | 黑人巨大精品人妻一区二区 | 99久久久无码国产精品性黑人 | 被绑在床强摁做开腿呻吟 | 国产网红无码精品视频 | 不卡av片| www.狠狠撸.com | 色视频在线播放 | 二区在线视频 | 91成人精品视频 | 国产精品永久免费视频 | 久久伊人av| 中文字幕人妻一区二区在线视频 | 久久久久亚洲精品国产 | 一区二区三区四区欧美 | 成人欧美一区二区三区黑人免费 | 一道本在线观看视频 | 国产ts人妖调教重口男 | 亚洲经典一区 | 免费看片91 | 日日av| 色多多视频在线 | 99久久免费精品 | 高清欧美精品xxxxx在线看 | 少妇av网 | 国产妞干网| 中文字幕日本人妻久久久免费 | 五月婷婷在线播放 | 成人在线观看黄色 | av成人资源 | 久久网页 | 亚洲精品三区 | 国产精品久久无码一三区 | 久草视 | 亚洲伊人色 | 美日韩一区二区三区 | www天天操 | 公车激情云雨小说 | 日韩美女视频在线 | 狠狠躁夜夜躁av无码中文幕 | 偷拍亚洲综合 | 第一区免费在线观看 | 五月婷婷伊人网 | 久久久久国色av免费观看性色 | 国产99久久久欧美黑人 | 欧美一区| 日韩操比 | 日皮视频免费观看 | 九九色播| 欧美精品久久久久a | 免费爱爱视频 | 九九热在线视频播放 | 1769国产精品视频 | 制服师生在线 | 亚洲综合一二三 | 蜜桃av在线 | www.久久爱 | 国产污在线观看 | 澳门av网站| 综合久久99 | 国产精品秘入口18禁麻豆免会员 | 久久精品69 | 国产精品sm| 亚洲综合自拍偷拍 | 久久久久亚洲av无码专区喷水 | 手机亚洲第一页 | 国产精品卡一 | 欲色综合 | 一区二区三区四区亚洲 | 中文字幕在线视频网站 | √资源天堂中文在线视频 | 日韩欧美中出 | 久久理论视频 | a极毛片| 婷婷综合六月 | 日韩精品视频在线播放 | 久久精品视频免费看 | 国产亚洲欧美在线视频 | av999 | 国产精品一区二区无码免费看片 | 女人做爰全过程免费观看美女 | 欧美日韩一区二区三区在线电影 | 午夜性色福利影院 | 久久亚洲综合国产精品99麻豆精品福利 | 噜噜啪啪| 亚洲高清视频一区 | 手机在线观看日韩av | 成人免费视频观看视频 | 亚洲色图欧美激情 | 超碰人人在线 | 国产精品自产拍 | 亚洲永久免费观看 | 国产一级视频免费观看 | 一级空姐毛片 | 五月天青青草 | 2019中文字幕在线观看 | 四虎av在线播放 | 天堂网视频 |