日韩性视频-久久久蜜桃-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 简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美色综合色 | 米奇7777狠狠狠狠视频 | 男女午夜激情视频 | 国产免费又黄又爽又色毛 | 日本五十路在线 | 日本黄色中文字幕 | 不卡中文字幕 | 俄罗斯丰满熟妇hd | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲精品69 | 色天使亚洲| 国产在线播放91 | 一级在线视频 | 日本免费一区二区三区四区五六区 | 国产一级在线免费观看 | 国产偷人视频 | 亚洲成人一二三 | 午夜精品一区二区三区在线观看 | 国产激情视频在线播放 | 波多野结衣免费观看视频 | 亚洲网在线| 亚洲色图图片区 | 精品视频区 | 成人黄色片免费看 | 嫩草网站入口 | 99热这里 | 91精品欧美一区二区三区 | 日韩精品一级 | 国产精品免费看久久久无码 | 国产精品美女网站 | 老司机免费精品视频 | 精品国产99久久久久久宅男i | av我不卡 | 久草资源在线观看 | 狠狠操你 | 福利视频网址 | 好男人资源 | 免费看黄色小视频 | 国产精品白丝喷水在线观看 | av中文网| 西西午夜视频 | 亚洲欧美综合 | 懂色av蜜臀av粉嫩av | 亚洲自拍偷拍精品视频 | 无码人妻少妇色欲av一区二区 | 亚洲欧美日韩成人在线 | 国产精品免费视频一区二区三区 | 亚洲综合另类 | 又黄又爽无遮挡 | 一区二区三区视频在线免费观看 | 国产日韩成人内射视频 | 亚洲免费中文字幕 | 97人人澡 | 羞羞漫画在线播放 | 久久久久国产免费 | 三年中文免费观看大全动漫 | 日韩福利一区二区 | 丰满岳跪趴高撅肥臀尤物在线观看 | 国产成人无码精品久久久久 | 欧美三级视频在线观看 | 99精品久久毛片a片 成人网一区 | 精品妇女一区二区三区 | 久久久久久久国产视频 | 亚洲免费在线观看 | 欧美成人午夜影院 | 日本精品免费一区二区三区 | 91字幕网| 日本三级韩国三级三级a级中文 | 美女黄视频大全 | 精品亚洲一区二区 | 精品人妻无码专区在线 | 中文字幕狠狠干 | 久久精视频 | 国产精品久久久久久久妇 | www插插插无码免费视频网站 | 日日狠狠久久偷偷四色综合免费 | 国内精品嫩模av私拍在线观看 | 欧美熟妇精品一区二区蜜桃视频 | 夜夜小视频 | 亚洲一区二区久久久 | 婷婷五月色综合 | 精品人妻一区二区三区三区四区 | 黄色污网站在线观看 | 午夜小影院 | 日本一区二区三区久久 | 青青草免费在线观看 | 亚洲天堂小视频 | 亚洲欧美福利 | 婷婷激情久久 | sesese99| 天天干中文字幕 | 亚洲色图网友自拍 | 成人在线观看h | 欧美国产激情 | 鲁丝片一区二区三区 | 国产污在线观看 | 91视频污在线观看 | 国产又粗又猛又大爽 | 亚洲精品一区二区三区四区乱码 |