libtorch (pytorch c++) 教程(一)


前言

本教程旨在教讀者如何用c++寫模型,訓練模型,根據模型預測對象。為便於教學和使用,本文的c++模型均使用libtorch(或者pytorch c++ api)完成搭建和訓練等。目前,國內各大平台似乎沒有pytorch在c++上api的完整教學,也沒有基於c++開發的完整的深度學習開源模型。可能原因很多:

  1. c/c++的深度學習已經足夠底層和落地,商用價值較高,開發難度偏大,一般不會開源;
  2. 基於python訓練,libtorch預測的部署形式足夠滿足大多數項目的需求,如非產品級應用,不會有人願意研究如何用c++從頭搭建模型,實現模型訓練功能;
  3. Tensorflow的市場份額,尤其時工業應用的部署下市場占比足夠高,導致基於libtorch的開發和部署占比很小,所以未見開源。

本教程提供基於libtorch的c++開發的深度學習視覺模型教學,本教程的開發平台基於Windows環境和Visual Sutdio集成開發環境,實現三大深度視覺基本任務:分類,分割和檢測。適用人群為:

  • 有c++基礎,了解面向對象思維,
  • 有pytorch或者其他深度學習編程經驗,但對模型落地部署等經驗不足者。

章節安排

本教程分多個章節:

在第一章中,筆者將介紹教程使用的開發環境。第二章,筆者將介紹libtorch中的torch::Tensor類的常用操作,便於后續復雜算法的落地實施。第三章,筆者將以一個簡單的線性模型為例,介紹如何在c++上創建一個分類或者回歸模型。第四章,筆者將介紹如何使用libtorch的dataload模塊,這對c++模型的訓練極其重要。第五、六、七章中,教程將詳細描述如何實現一個c++分類器,一個c++語義分割器,一個c++目標檢測器,包含功能分別為:分類圖片,語義分割圖片,檢測圖片中的目標。第八章為全部教程的總結和展望。

第一章

事實上,在前面的pytorch部署博客libtorch的QT部署中筆者已經分享了自己搭建libtorch開發環境的記錄。其余並無太多要贅述的。

分享不易,如果有用請不吝給我一個👍,轉載注明出處:https://allentdan.github.io/
代碼見LibtorchTutorials


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM