在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內不再提示

TorchScript介紹及使用

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-05-10 11:28 ? 次閱讀

TorchScript介紹

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

trace使用

Torchscript使用分為兩個部分分別是script跟trace,其中trace是跟蹤執(zhí)行步驟,記錄模型調用推理時執(zhí)行的每個步驟,代碼演示如下:
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)
)

跟蹤執(zhí)行結果

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;
}

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

審核編輯 :李倩


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

    關注

    0

    文章

    370

    瀏覽量

    40927
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73861
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13370

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

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

收藏 人收藏

    評論

    相關推薦

    2K0300先鋒派Openharmony開發(fā)介紹

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

    GaN應用介紹

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

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

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

    信號的反射與端接介紹

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

    內核程序漏洞介紹

    電子發(fā)燒友網站提供《內核程序漏洞介紹.pdf》資料免費下載
    發(fā)表于 08-12 09:38 ?0次下載

    步進電機的簡單介紹

    步進電機的命名,參數,轉速簡單介紹
    的頭像 發(fā)表于 04-17 21:40 ?1278次閱讀

    zedboard原理圖介紹

    電子發(fā)燒友網站提供《zedboard原理圖介紹.pdf》資料免費下載
    發(fā)表于 04-07 09:10 ?10次下載

    激光二極管基本原理介紹

    激光二極管基本原理介紹
    發(fā)表于 03-19 10:57

    PCB板材厚度和工藝介紹

    板材厚度和工藝介紹
    發(fā)表于 03-07 14:21 ?3次下載

    allegro教程介紹

    電子發(fā)燒友網站提供《allegro教程介紹.pdf》資料免費下載
    發(fā)表于 02-29 09:28 ?3次下載

    Cadence中文教程介紹

    電子發(fā)燒友網站提供《Cadence中文教程介紹.zip》資料免費下載
    發(fā)表于 02-29 09:26 ?15次下載

    舵機控制例程、原理介紹

    電子發(fā)燒友網站提供《舵機控制例程、原理介紹.zip》資料免費下載
    發(fā)表于 02-23 14:02 ?1次下載

    LZOAccel-D應用介紹

    電子發(fā)燒友網站提供《LZOAccel-D應用介紹.pdf》資料免費下載
    發(fā)表于 02-23 10:10 ?0次下載

    FPGA基礎知識介紹

    電子發(fā)燒友網站提供《FPGA基礎知識介紹.pdf》資料免費下載
    發(fā)表于 02-23 09:45 ?32次下載

    IN100產品介紹

    電子發(fā)燒友網站提供《IN100產品介紹.pdf》資料免費下載
    發(fā)表于 02-22 14:38 ?1次下載
    主站蜘蛛池模板: 丁香婷婷激情综合 | 97玖玖| 亚洲精品一区二区中文 | 国产三级影院 | 日本黄色大片在线观看 | 一级特级aaaa毛片免费观看 | 在线观看黄日本高清视频 | 国产福利在线免费 | 成人丁香 | 午夜三级视频 | 欧美黑人巨大xxxx猛交 | 激情综合五月婷婷 | 毛片2016免费视频 | 男男全肉高h腐文 | 爱爱小视频免费看 | 色综合九九 | 女人18毛片水多 | 午夜免费福利在线 | 欧美1024性视频 | 夭天干天天做天天免费看 | 在线你懂的 | 亚洲免费色图 | a级男女性高爱潮高清试 | 国产成人精品午夜二三区 | 视频在线精品 | 亚洲国内精品久久 | 国卡一卡二卡三免费网站 | 国产狂喷冒白浆免费视频 | 2021精品综合久久久久 | 色综久久 | 日本在线观看成人小视频 | 国产在视频线精品视频2021 | 俄罗斯美女69xxxxxx | 天天干夜夜谢 | 色多多入口 | 午夜寂寞影 | 色偷偷网址| 手机看片自拍自自拍日韩免费 | 看看一级毛片 | 欧美一区二区三区影院 | 亚洲一区二区高清 |