chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

執(zhí)行部署的TensorRT加速引擎

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 作者:NVIDIA英偉達(dá)企業(yè)解 ? 2022-06-01 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多開發(fā)人員在轉(zhuǎn)換完 TensorRT 加速引擎之后,最后準(zhǔn)備調(diào)用起來(lái)執(zhí)行推理任務(wù)的時(shí)候,就遇到一些障礙。這個(gè)環(huán)節(jié)是需要開發(fā)人員自行撰寫相關(guān)代碼,去執(zhí)行讀入數(shù)據(jù)(前處理)、執(zhí)行推理、顯示結(jié)果(后處理)等工作,如下圖最右邊的部分。

39d89e3c-e152-11ec-ba43-dac502259ad0.png

這部分的麻煩之處,在于每個(gè)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)不相同,并沒有“通用”的代碼可以適用于大部分的網(wǎng)絡(luò)結(jié)構(gòu),需要針對(duì)指定神經(jīng)網(wǎng)絡(luò)去撰寫對(duì)應(yīng)的代碼,最重要是需要清除這個(gè)模型的輸入 (input bold) 與輸出 (outpold) 的名稱與張量結(jié)構(gòu)。

本文以前面在 TAO 工具套件中使用的 ssd 神經(jīng)網(wǎng)絡(luò)為范例,提供基礎(chǔ)的“前后處理”范例代碼給讀者參考,這是從 NVIDIA 中國(guó)區(qū)開發(fā)者社區(qū)所舉辦過多屆 “Sky 黑客松”比賽中,所提供的開源內(nèi)容中提取的重點(diǎn),主要如下:

1、數(shù)據(jù)前處理:


  def _preprocess_trt(img, shape=(300, 300)):    """TRT SSD推理前的數(shù)據(jù)前處理"""    img = cv2.resize(img, shape)    img = img.transpose((2, 0, 1)).astype(np.float32)returnimg

這里 “shape=(300,300)” 為張量的尺度,根據(jù)模型訓(xùn)練時(shí)的長(zhǎng)寬兩個(gè)變量,至于 transpose 里的 (2,0,1) 是固定的,不需調(diào)整。

2、數(shù)據(jù)后處理:


  def _postprocess_trt(img, output, conf_th, output_layout):    """TRT SSD推理后的結(jié)果的數(shù)據(jù)處理步驟."""    img_h, img_w, _ = img.shape    boxes, confs, clss = [], [], []    for prefix in range(0, len(output), output_layout):        index = int(output[prefix+0])        conf = float(output[prefix+2])        if conf < conf_th:            continue        x1 = int(output[prefix+3] * img_w)        y1 = int(output[prefix+4] * img_h)        x2 = int(output[prefix+5] * img_w)        y2 = int(output[prefix+6] * img_h)        cls = int(output[prefix+1])        boxes.append((x1, y1, x2, y2))        confs.append(conf)        clss.append(cls)returnboxes,confs,clss#返回標(biāo)框坐標(biāo)、置信度、類別

這里最重要的 x1, y1,x2, y2 坐標(biāo)值,必須根據(jù) SSD 神經(jīng)網(wǎng)絡(luò)所定義的規(guī)范去進(jìn)行修改,其他部分可以通用于大部分神經(jīng)網(wǎng)絡(luò)。

3、定義 TrtSSD 類封裝運(yùn)行 TRT SSD 所需的東西:


  class TrtSSD(object):# 加載自定義組建,如果TRT版本小于7.0需要額外生成flattenconcat自定義組件庫(kù)    def _load_plugins(self):        if trt.__version__[0] < '7':            ctypes.CDLL("ssd/libflattenconcat.so")        trt.init_libnvinfer_plugins(self.trt_logger, '')#加載通過Transfer Learning Toolkit生成的推理引擎    def _load_engine(self):        TRTbin = 'ssd/TRT_%s.bin' % self.model  #請(qǐng)根據(jù)實(shí)際狀況自行修改        with open(TRTbin, 'rb') as f, trt.Runtime(self.trt_logger) as runtime:            return runtime.deserialize_cuda_engine(f.read())#通過加載的引擎,生成可執(zhí)行的上下文    def _create_context(self):        for binding in self.engine:            size = trt.volume(self.engine.get_binding_shape(binding)) *                    self.engine.max_batch_size##注意:這里的host_mem需要使用pagelockedmemory,以免內(nèi)存被釋放            host_mem = cuda.pagelocked_empty(size, np.float32)            cuda_mem = cuda.mem_alloc(host_mem.nbytes)            self.bindings.append(int(cuda_mem))            if self.engine.binding_is_input(binding):                self.host_inputs.append(host_mem)                self.cuda_inputs.append(cuda_mem)            else:                self.host_outputs.append(host_mem)                self.cuda_outputs.append(cuda_mem)        return self.engine.create_execution_context()# 初始化引擎    def __init__(self, model, input_shape, output_layout=7):        self.model = model        self.input_shape = input_shape        self.output_layout = output_layout        self.trt_logger = trt.Logger(trt.Logger.INFO)        self._load_plugins()        self.engine = self._load_engine()
        self.host_inputs = []        self.cuda_inputs = []        self.host_outputs = []        self.cuda_outputs = []        self.bindings = []        self.stream = cuda.Stream()        self.context = self._create_context()# 釋放引擎,釋放GPU顯存,釋放CUDA流    def __del__(self):        del self.stream        del self.cuda_outputs        del self.cuda_inputs# 利用生成的可執(zhí)行上下文執(zhí)行推理    def detect(self, img, conf_th=0.3):        img_resized = _preprocess_trt(img, self.input_shape)        np.copyto(self.host_inputs[0], img_resized.ravel())        # 將處理好的圖片從CPU內(nèi)存中復(fù)制到GPU顯存        cuda.memcpy_htod_async(            self.cuda_inputs[0], self.host_inputs[0], self.stream)        # 開始執(zhí)行推理任務(wù)        self.context.execute_async(            batch_size=1,            bindings=self.bindings,            stream_handle=self.stream.handle)        # 將推理結(jié)果輸出從GPU顯存復(fù)制到CPU內(nèi)存        cuda.memcpy_dtoh_async(            self.host_outputs[1], self.cuda_outputs[1], self.stream)        cuda.memcpy_dtoh_async(            self.host_outputs[0], self.cuda_outputs[0], self.stream)        self.stream.synchronize()
        output = self.host_outputs[0]return_postprocess_trt(img,output,conf_th,self.output_layout)

上面三個(gè)部分對(duì)不同神經(jīng)網(wǎng)絡(luò)都是不同的內(nèi)容,如果要參考 YOLO 神經(jīng)網(wǎng)絡(luò)的對(duì)應(yīng)內(nèi)容,推薦參考https://github.com/jkjung-avt/tensorrt_demos開源項(xiàng)目,里面有完整的 YOLOv3 與 YOLOv4 的詳細(xì)內(nèi)容。

本文的開源代碼可以在此鏈接下載完整的內(nèi)容與配套的工具。

https://pan.baidu.com/s/1fGLBnzqtnRNpfD3PbileOA密碼: 99et

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4829

    瀏覽量

    106866
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5509

    瀏覽量

    109145

原文標(biāo)題:NVIDIA Jetson Nano 2GB 系列文章(65):執(zhí)行部署的 TensorRT 加速引擎

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    沐曦股份GPU加速技術(shù)助力藥物研發(fā)降本增效

    沐曦股份科學(xué)計(jì)算團(tuán)隊(duì)近期取得突破性進(jìn)展,成功將主流分子動(dòng)力學(xué)模擬引擎GROMACS中的FEP計(jì)算全流程部署于GPU執(zhí)行,并實(shí)現(xiàn)2.5倍性能提升,相關(guān)成果獲得GROMACS官方團(tuán)隊(duì)的高度認(rèn)可,該GPU
    的頭像 發(fā)表于 12-02 15:58 ?408次閱讀

    工業(yè)級(jí)-專業(yè)液晶圖形顯示加速器RA8889ML3N簡(jiǎn)介+顯示方案選型參考表

    控制等高級(jí)顯示功能,通過硬件加速(如Alpha混合)來(lái)執(zhí)行這些操作,避免了由MCU軟件處理帶來(lái)的性能開銷。核心特性: 主控端接口:支持8080/6800異步并行接口和IIC、3/4-wire SPI串行
    發(fā)表于 11-14 16:03

    NVIDIA TensorRT LLM 1.0推理框架正式上線

    TensorRT LLM 作為 NVIDIA 為大規(guī)模 LLM 推理打造的推理框架,核心目標(biāo)是突破 NVIDIA 平臺(tái)上的推理性能瓶頸。為實(shí)現(xiàn)這一目標(biāo),其構(gòu)建了多維度的核心實(shí)現(xiàn)路徑:一方面,針對(duì)需
    的頭像 發(fā)表于 10-21 11:04 ?803次閱讀

    CICC2033神經(jīng)網(wǎng)絡(luò)部署相關(guān)操作

    在完成神經(jīng)網(wǎng)絡(luò)量化后,需要將神經(jīng)網(wǎng)絡(luò)部署到硬件加速器上。首先需要將所有權(quán)重?cái)?shù)據(jù)以及輸入數(shù)據(jù)導(dǎo)入到存儲(chǔ)器內(nèi)。 在仿真環(huán)境下,可將其存于一個(gè)文件,并在 Verilog 代碼中通過 readmemh 函數(shù)
    發(fā)表于 10-20 08:00

    TensorRT-LLM的大規(guī)模專家并行架構(gòu)設(shè)計(jì)

    之前文章已介紹引入大規(guī)模 EP 的初衷,本篇將繼續(xù)深入介紹 TensorRT-LLM 的大規(guī)模專家并行架構(gòu)設(shè)計(jì)與創(chuàng)新實(shí)現(xiàn)。
    的頭像 發(fā)表于 09-23 14:42 ?745次閱讀
    <b class='flag-5'>TensorRT</b>-LLM的大規(guī)模專家并行架構(gòu)設(shè)計(jì)

    DeepSeek R1 MTP在TensorRT-LLM中的實(shí)現(xiàn)與優(yōu)化

    TensorRT-LLM 在 NVIDIA Blackwell GPU 上創(chuàng)下了 DeepSeek-R1 推理性能的世界紀(jì)錄,Multi-Token Prediction (MTP) 實(shí)現(xiàn)了大幅提速
    的頭像 發(fā)表于 08-30 15:47 ?4020次閱讀
    DeepSeek R1 MTP在<b class='flag-5'>TensorRT</b>-LLM中的實(shí)現(xiàn)與優(yōu)化

    TensorRT-LLM中的分離式服務(wù)

    在之前的技術(shù)博客中,我們介紹了低延遲[1] 和高吞吐[2] 場(chǎng)景的優(yōu)化方法。對(duì)于生產(chǎn)部署,用戶還關(guān)心在滿足特定延遲約束的情況下,每個(gè) GPU 的吞吐表現(xiàn)。本文將圍繞“吞吐量-延遲”性能場(chǎng)景,介紹 TensorRT-LLM 分離式服務(wù)的設(shè)計(jì)理念、使用方法,以及性能研究結(jié)果。
    的頭像 發(fā)表于 08-27 12:29 ?1422次閱讀
    <b class='flag-5'>TensorRT</b>-LLM中的分離式服務(wù)

    NVIDIA RTX AI加速FLUX.1 Kontext現(xiàn)已開放下載

    NVIDIA RTX 與 NVIDIA TensorRT 現(xiàn)已加速 Black Forest Labs 的最新圖像生成和編輯模型;此外,Gemma 3n 現(xiàn)可借助 RTX 和 NVIDIA Jetson 加速運(yùn)行。
    的頭像 發(fā)表于 07-16 09:16 ?1886次閱讀

    如何在魔搭社區(qū)使用TensorRT-LLM加速優(yōu)化Qwen3系列模型推理部署

    TensorRT-LLM 作為 NVIDIA 專為 LLM 推理部署加速優(yōu)化的開源庫(kù),可幫助開發(fā)者快速利用最新 LLM 完成應(yīng)用原型驗(yàn)證與產(chǎn)品部署。
    的頭像 發(fā)表于 07-04 14:38 ?1779次閱讀

    愛立信攜手超微加速邊緣人工智能部署

    愛立信與超微 Supermicro近日宣布有意開展戰(zhàn)略合作,加速邊緣人工智能部署。
    的頭像 發(fā)表于 06-17 09:42 ?1.5w次閱讀

    使用NVIDIA Triton和TensorRT-LLM部署TTS應(yīng)用的最佳實(shí)踐

    針對(duì)基于 Diffusion 和 LLM 類別的 TTS 模型,NVIDIA Triton 和 TensorRT-LLM 方案能顯著提升推理速度。在單張 NVIDIA Ada Lovelace
    的頭像 發(fā)表于 06-12 15:37 ?1328次閱讀
    使用NVIDIA Triton和<b class='flag-5'>TensorRT</b>-LLM<b class='flag-5'>部署</b>TTS應(yīng)用的最佳實(shí)踐

    配備3D圖形加速引擎的通用微處理器RZ/G2LC數(shù)據(jù)手冊(cè)

    RZ/G2LC 微處理器配備 Cortex?-A55 (1.2 GHz) CPU、16 位 DDR3L/DDR4 接口以及帶 Arm Mali-G31的 3D 圖形加速引擎。 此外,這款微處理器還
    的頭像 發(fā)表于 03-12 17:29 ?704次閱讀
    配備3D圖形<b class='flag-5'>加速</b><b class='flag-5'>引擎</b>的通用微處理器RZ/G2LC數(shù)據(jù)手冊(cè)

    yolov5轉(zhuǎn)onnx在cubeAI進(jìn)行部署部署失敗的原因?

    第一個(gè)我是轉(zhuǎn)onnx時(shí) 想把權(quán)重文件變小點(diǎn) 就用了半精度 --half,則說(shuō)17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說(shuō)是哪里、、。。。 到底能不能部署yolov5這種東西???? 也沒看見幾個(gè)部署在這上面..............
    發(fā)表于 03-07 11:38

    常見的容器云服務(wù)引擎有哪些?

    常見的容器云服務(wù)引擎有哪些?云服務(wù)引擎涵蓋數(shù)據(jù)庫(kù)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理、數(shù)據(jù)分析、容器云、機(jī)器學(xué)習(xí)及數(shù)據(jù)集成等多個(gè)領(lǐng)域,提供一站式解決方案。云服務(wù)引擎是云計(jì)算領(lǐng)域的重要組成部分,它們提供了各種服務(wù)來(lái)幫助用戶構(gòu)建、
    的頭像 發(fā)表于 01-07 09:49 ?690次閱讀

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個(gè)專為優(yōu)化大語(yǔ)言模型 (LLM) 推理而設(shè)計(jì)的庫(kù)。它提供了多種先進(jìn)的優(yōu)化技術(shù),包括自定義 Attention Kernel、Inflight
    的頭像 發(fā)表于 12-17 17:47 ?1625次閱讀