色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TorchScript介紹及使用

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-05-10 11:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

TorchScript介紹

TorchScript是PyTorch模型推理部署的中間表示,可以在高性能環境libtorch(C ++)中直接加載,實現模型推理,而無需Pytorch訓練框架依賴。torch.jit是torchscript Python語言包支持,支持pytorch模型快速,高效,無縫對接到libtorch運行時,實現高效推理。它是Pytorch中除了訓練部分之外,開發者最需要掌握的Pytorch框架開發技能之一。

trace使用

Torchscript使用分為兩個部分分別是script跟trace,其中trace是跟蹤執行步驟,記錄模型調用推理時執行的每個步驟,代碼演示如下:
classMyCell(torch.nn.Module):
def__init__(self):
super(MyCell,self).__init__()
self.linear=torch.nn.Linear(4,4)


defforward(self,x,h):
new_h=torch.tanh(self.linear(x)+h)
returnnew_h,new_h


my_cell=MyCell()
x,h=torch.rand(3,4),torch.rand(3,4)
traced_cell=torch.jit.trace(my_cell,(x,h))
print(traced_cell)
traced_cell(x,h)
print(traced_cell.graph)

運行結果如下:

MyCell(
original_name=MyCell
(linear):Linear(original_name=Linear)
)

跟蹤執行結果

graph(%self.1:__torch__.MyCell,
%input:Float(3:4,4:1,requires_grad=0,device=cpu),
%h:Float(3:4,4:1,requires_grad=0,device=cpu)):
%19:__torch__.torch.nn.modules.linear.Linear=prim::GetAttr[name="linear"](%self.1)
%21:Tensor=prim::CallMethod[name="forward"](%19,%input)
%12:int=prim::Constant[value=1]()#D:/python/pytorch_openvino_demo/ch5/faster_rcnn2onnx.py0
%13:Float(3:4,4:1,requires_grad=1,device=cpu)=aten::add(%21,%h,%12)#D:/python/pytorch_openvino_demo/ch5/faster_rcnn2onnx.py0
%14:Float(3:4,4:1,requires_grad=1,device=cpu)=aten::tanh(%13)#D:/python/pytorch_openvino_demo/ch5/faster_rcnn2onnx.py0
%15:(Float(3:4,4:1,requires_grad=1,device=cpu),Float(3:4,4:1,requires_grad=1,device=cpu))=prim::TupleConstruct(%14,%14)
return(%15)

script部分使用

script是導出模型為中間IR格式文件,支持高性能libtorch C++部署,我們以torchvision中Mask-RCNN導出中間格式IR為例,代碼演示如下:

importtorch
importtorchvisionastv

num_classes=3
model=tv.models.detection.maskrcnn_resnet50_fpn(
pretrained=False,progress=True,
num_classes=num_classes,
pretrained_backbone=True)
im=torch.zeros(1,3,*(1333,800)).to("cpu")
model.load_state_dict(torch.load("D:/gaobao_model.pth"))
model=model.to("cpu")
model.eval()
ts=torch.jit.script(model)
ts.save("gaobao.ts")

loaded_trace=torch.jit.load("gaobao.ts")
loaded_trace.eval()
withtorch.no_grad():
print(loaded_trace(list(im)))

最終得到torchscript文件,支持直接通過libtorch部署,其中通過torchscript C++部分加載的代碼如下:
#include//One-stopheader.
#include
#include
intmain(intargc,constchar*argv[]){
if(argc!=2){
std::cerr<"usage:example-app
";
return-1;
}

//DeserializetheScriptModulefromafileusingtorch::load().
torch::Modulemodule=torch::load(argv[1]);
std::vectorinputs;
inputs.push_back(torch::randn({4,8}));
inputs.push_back(torch::randn({8,5}));
torch::Tensoroutput=module.forward(std::move(inputs)).toTensor();

std::cout<std::endl;
}

上面代碼來自官方測試程序,特別說明一下!

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發
    +關注

    關注

    0

    文章

    373

    瀏覽量

    41490
  • C++
    C++
    +關注

    關注

    22

    文章

    2119

    瀏覽量

    75180
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

    13917

原文標題:輕松學Pytorch之torchscript使用!

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    元器件及單元電路介紹-610頁

    元器件及單元電路介紹放大電路基礎,電源電路,正弦波振蕩電路,調制與解調電路,混頻電路與變頻電路,集成運算放大電路,數字集成電路等。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、點贊、評論支持一下哦~)
    發表于 05-19 15:41

    【「AI Agent應用與項目實戰」閱讀體驗】書籍介紹

    結構如下: 可以看到整體的內容是非常豐富的,對于一本89元的書來說,除第一章是總體介紹外,包含10個應用案例,可以說是超值了,平均一個案例還不到9塊錢,都不夠一杯奶茶,所以還有什么理由不掌握呢
    發表于 03-05 20:40

    Meshtastic APP使用介紹

    meshtastic APP使用介紹
    的頭像 發表于 03-05 09:59 ?685次閱讀
    Meshtastic APP使用<b class='flag-5'>介紹</b>

    meshtastic的應用場景介紹

    meshtastic的應用場景介紹
    的頭像 發表于 02-21 12:02 ?677次閱讀
    meshtastic的應用場景<b class='flag-5'>介紹</b>

    誰能詳細介紹一下track-and-hold

    在運放和ADC芯片的數據手冊中經常看到track-and-hold,誰能詳細介紹一下track-and-hold?
    發表于 01-20 09:10

    請問有沒有ADS1293的SPI的各個寄存器的介紹

    請問有沒有ADS1293的SPI的各個寄存器的介紹,數據手冊中并沒有詳細介紹,TI給的官方歷程中涉及到很多與開發板相關的引腳,所以不太理解給出的例程。
    發表于 01-15 07:05

    色環電阻的阻值、精度介紹

    電子發燒友網站提供《色環電阻的阻值、精度介紹.doc》資料免費下載
    發表于 01-08 13:42 ?0次下載

    RK3568內置MCU開發介紹之二

    本文重點介紹RK3568內置的MCU與AP之間的通信功能,首先介紹RPMsg的框架,然后介紹MCU端RPMSG的構建方法,最后介紹AP端的RPMSG的配置方法,并進行MCU和AP之間通
    的頭像 發表于 12-16 09:09 ?1277次閱讀
    RK3568內置MCU開發<b class='flag-5'>介紹</b>之二

    2K0300先鋒派Openharmony開發介紹

    *附件:2K0300先鋒派Openharmony開發介紹-241114.pdf
    發表于 11-17 21:36

    GaN應用介紹

    電子發燒友網站提供《GaN應用介紹.pdf》資料免費下載
    發表于 09-12 09:55 ?0次下載
    GaN應用<b class='flag-5'>介紹</b>

    技術分享 柵極驅動器及其應用介紹

    一、柵極驅動器介紹 1)為什么需要柵極驅動器? 2)功率器件開關過程介紹 3)三種常見驅動芯片介紹 二、隔離方案介紹 1)為什么需要隔離驅動 2)主流隔離方案
    的頭像 發表于 09-10 09:26 ?956次閱讀
    技術分享 柵極驅動器及其應用<b class='flag-5'>介紹</b>

    LVGL開發指南介紹

    電子發燒友網站提供《LVGL開發指南介紹.pdf》資料免費下載
    發表于 09-09 10:24 ?20次下載

    shell基本介紹及常用命令之shell介紹

    是“$”,在命令提示符后邊輸入命令即可和系統進行交互操作。Ubuntu默認的Shell是Bash(Bourne Again Shell)。Linux命令有很多,功能比較強大,下節我們簡單介紹一些常用
    發表于 08-15 09:28

    信號的反射與端接介紹

    電子發燒友網站提供《信號的反射與端接介紹.pdf》資料免費下載
    發表于 08-12 14:08 ?0次下載

    內核程序漏洞介紹

    電子發燒友網站提供《內核程序漏洞介紹.pdf》資料免費下載
    發表于 08-12 09:38 ?0次下載
    主站蜘蛛池模板: 亚洲欧美日韩人成 | 97超碰97资源在线观看视频 | 久久免费资源福利资源站 | 三八成人网| 亚洲黄色免费在线观看 | 亚洲精品国产精品麻豆99 | 久久视频在线视频观看天天看视频 | 97久久伊人精品影院 | 亚州性夜夜射在线观看 | 超嫩校花被灌醉在线观看 | 男人桶女人j的视频在线观看 | 伦理片飘花免费影院 | 无修肉动漫在线观看影片 | 好吊妞在线成人免费 | 午夜宅宅伦电影网中文字幕 | 欲奴第一季在线观看全集 | 一抽一出BGM免费3分钟 | 亚洲中文久久精品AV无码 | 蜜臀AV人妻久久无码精品麻豆 | 99视频偷窥在线精品国自产拍 | 少妇高潮惨叫久久久久久欧美 | 强奸美女老师 | 国产高清亚洲 | 亚洲免费视频日本一区二区 | 一级毛片在线免费视频 | 欧洲精品不卡1卡2卡三卡四卡 | WWW久久只有这里有精品 | 二色AV天堂在线 | 在线免费观看毛片网站 | 国产露脸150部国语对白 | 亲嘴扒胸摸屁股视频免费网站 | 最近中文字幕完整版免费高清 | 久久99精品久久久久久园产越南 | 日韩内射美女人妻一区二区三区 | 狂野欧美性猛XXXX乱大交 | 2021久久99国产熟女人妻 | 最新国产成人综合在线观看 | 爱情岛论坛免费在线观看 | 蜜桃传媒星空传媒在线播放 | 三级黄色在线视频 | 闺蜜撬开我的腿用黄瓜折磨我 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品