那曲檬骨新材料有限公司

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

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

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

在GPU上利用TensorFlow Serving 部署ResNet

Tensorflowers ? 來(lái)源:lp ? 2019-03-05 17:51 ? 次閱讀

TensorFlow Serving 是用于機(jī)器學(xué)習(xí)模型的高性能靈活服務(wù)系統(tǒng),而 NVIDIA TensorRT? 是實(shí)現(xiàn)高性能深度學(xué)習(xí)推理的平臺(tái),通過(guò)將二者相結(jié)合,用戶(hù)便可獲得更高性能,從而輕松實(shí)現(xiàn) GPU 推理。TensorFlow 團(tuán)隊(duì)與 NVIDIA 合作,在 TensorFlow v1.7 中首次添加了對(duì) TensorRT 的支持。此后,我們一直密切合作,共同改進(jìn) TensorFlow-TensorRT 集成(稱(chēng)為 TF-TRT)。TensorFlow Serving 1.13 現(xiàn)已實(shí)現(xiàn)這種集成,TensorFlow 2.0 很快也會(huì)進(jìn)行集成。

在 之前的文章 中,我們介紹了如何借助 Docker 使用 TensorFlow Serving。在本文中,我們將展示以同樣的方式運(yùn)行經(jīng) TF-TRT 轉(zhuǎn)換的模型有多簡(jiǎn)單。與之前一樣,我們嘗試在生產(chǎn)環(huán)境中部署 ResNet 模型。下方所有示例均在配備 Titan-V GPU 的工作站上運(yùn)行。

注:ResNet 鏈接

https://github.com/tensorflow/models/tree/master/official/resnet

在 GPU 上利用 TensorFlow Serving 部署 ResNet

在這項(xiàng)練習(xí)中,我們僅下載 經(jīng)過(guò)預(yù)訓(xùn)練的 ResNet SavedModel:

$ mkdir /tmp/resnet

$ curl -s https://storage.googleapis.com/download.tensorflow.org/models/official/20181001_resnet/savedmodels/resnet_v2_fp32_savedmodel_NHWC_jpg.tar.gz | tar --strip-components=2 -C /tmp/resnet -xvz

$ ls /tmp/resnet

1538687457

注:經(jīng)過(guò)預(yù)訓(xùn)練的 ResNet 鏈接

https://github.com/tensorflow/models/tree/master/official/resnet#pre-trained-model

在之前的文章中,我們展示了如何使用 TensorFlow Serving CPU Docker 圖像提供模型。在這里,我們運(yùn)行 GPU Docker 圖像(請(qǐng)查看此處了解相關(guān)說(shuō)明),以借助 GPU 提供并測(cè)試此模型:

$ docker pull tensorflow/serving:latest-gpu

$ docker run --rm --runtime=nvidia -p 8501:8501 --name tfserving_resnet \

-v /tmp/resnet:/models/resnet -e MODEL_NAME=resnet -t tensorflow/serving:latest-gpu &

… server.cc:286] Running gRPC ModelServer at 0.0.0.0:8500 …

… server.cc:302] Exporting HTTP/REST API at:localhost:8501 …

$ curl -o /tmp/resnet/resnet_client.py https://raw.githubusercontent.com/tensorflow/serving/master/tensorflow_serving/example/resnet_client.py

$ python /tmp/resnet/resnet_client.py

Prediction class:286, avg latency:18.0469 ms

注:此處 鏈接

https://www.tensorflow.org/serving/docker#serving_with_docker_using_your_gpu

此 docker run 命令會(huì)啟動(dòng) TensorFlow Serving 服務(wù)器,以提供 /tmp/resnet 中已下載的 SavedModel,并在主機(jī)中開(kāi)放 REST API 端口 8501。resnet_client.py 會(huì)發(fā)送一些圖像給服務(wù)器,并返回服務(wù)器所作的預(yù)測(cè)。現(xiàn)在讓我們終止 TensorFlow Serving 容器的運(yùn)行,以釋放所占用的 GPU 資源。

$ docker kill tfserving_resnet

注:REST API 鏈接

https://www.tensorflow.org/tfx/serving/api_rest

利用 TF-TRT 轉(zhuǎn)換和部署模型

現(xiàn)在,我們有了工作模型。為了享受 TensorRT 帶來(lái)的好處,我們需要在 TensorFlow Serving Docker 容器內(nèi)運(yùn)行轉(zhuǎn)換命令,從而將此模型轉(zhuǎn)換為使用 TensorRT 運(yùn)行運(yùn)算的模型:

$ docker pull tensorflow/tensorflow:latest-gpu

$ docker run --rm --runtime=nvidia -it -v /tmp:/tmp tensorflow/tensorflow:latest-gpu /usr/local/bin/saved_model_cli \

convert --dir /tmp/resnet/1538687457 --output_dir /tmp/resnet_trt/1538687457 --tag_set serve \

tensorrt --precision_mode FP32 --max_batch_size 1 --is_dynamic_op True

在這里,我們運(yùn)行了 saved_model_cli 命令行工具,其中內(nèi)置了對(duì) TF-TRT 轉(zhuǎn)換的支持。--dir 和 --output_dir 參數(shù)會(huì)指示 SavedModel 的位置以及在何處輸出轉(zhuǎn)換后的 SavedModel,而 --tag_set 則指示 SavedModel 中要轉(zhuǎn)換的圖表。隨后,我們?cè)诿钚兄袀鬟f tensorrt 并指定配置,明確指示其運(yùn)行 TF-TRT 轉(zhuǎn)換器

--precision_mode 指示轉(zhuǎn)換器需使用的精度,目前其僅支持 FP32 和 FP16

--max_batch_size 指示輸入的批次大小上限。此轉(zhuǎn)換器要求將由 TensorRT 處理的所有張量將其首個(gè)維度作為批次維度,而該參數(shù)則指示推理過(guò)程中會(huì)產(chǎn)生的最大值。若已知推理過(guò)程中的實(shí)際批次大小上限且該值與之匹配,則轉(zhuǎn)換后的模型即為最優(yōu)模型。請(qǐng)注意,轉(zhuǎn)換后的模型無(wú)法處理批次規(guī)模大于此處所指定大小的輸入,但可處理批次規(guī)模更小的輸入

--is_dynamic_op 指示在模型運(yùn)行時(shí)進(jìn)行實(shí)際轉(zhuǎn)換。原因在于,在進(jìn)行轉(zhuǎn)換時(shí),TensorRT 需要明確所有形狀。對(duì)于本例中使用的 ResNet 模型,其張量沒(méi)有固定的形狀,因此我們需要此參數(shù)

注:saved_model_cli 鏈接

https://www.tensorflow.org/guide/saved_model#cli_to_inspect_and_execute_savedmodel

現(xiàn)在,我們只需為模型指定正確的目錄,便可利用 Docker 提供經(jīng) TF-TRT 轉(zhuǎn)換的模型,這與之前一樣簡(jiǎn)單:

$ docker run --rm --runtime=nvidia -p 8501:8501 --name tfserving_resnet \

-v /tmp/resnet_trt:/models/resnet -e MODEL_NAME=resnet -t tensorflow/serving:latest-gpu &

… server.cc:286] Running gRPC ModelServer at 0.0.0.0:8500 …

… server.cc:302] Exporting HTTP/REST API at:localhost:8501 …

向其發(fā)送請(qǐng)求:

$ python /tmp/resnet/resnet_client.py

Prediction class:286, avg latency:15.0287 ms

最后,我們終止容器的運(yùn)行:

$ docker kill tfserving_resnet

我們可以看到,使用 TensorFlow Serving 和 Docker 生成經(jīng) TF-TRT 轉(zhuǎn)換的模型與提供一般模型一樣簡(jiǎn)單。此外,以上為展示內(nèi)容,其中的性能數(shù)字僅適用于我們所使用的模型和運(yùn)行本示例的設(shè)備,但它的確展現(xiàn)出使用 TF-TRT 所帶來(lái)的性能優(yōu)勢(shì)。

TensorFlow 2.0 發(fā)布在即,TensorFlow 團(tuán)隊(duì)和 NVIDIA 正在共同努力,以確保 TF-TRT 能在 2.0 中流暢運(yùn)行。如需了解最新信息,請(qǐng)查看 TF-TRT GitHub 代碼庫(kù)(https://github.com/tensorflow/tensorrt)。

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

    關(guān)注

    28

    文章

    4776

    瀏覽量

    129358
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8439

    瀏覽量

    133087
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60631

原文標(biāo)題:利用 NVIDIA TensorRT 優(yōu)化 TensorFlow Serving 的性能

文章出處:【微信號(hào):tensorflowers,微信公眾號(hào):Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    設(shè)備利用AI Edge Torch生成式API部署自定義大語(yǔ)言模型

    ,從而無(wú)縫地將新的設(shè)備端生成式 AI 模型部署到邊緣設(shè)備。本文是 Google AI Edge 博客連載的第二篇。一篇文章為大家介紹了 Google AI Edge Torch,該產(chǎn)品可以
    的頭像 發(fā)表于 11-14 10:23 ?542次閱讀
    <b class='flag-5'>在</b>設(shè)備<b class='flag-5'>上</b><b class='flag-5'>利用</b>AI Edge Torch生成式API<b class='flag-5'>部署</b>自定義大語(yǔ)言模型

    混合部署 | 迅為RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)

    RT-Thread介紹 RT-Thread 是一個(gè)高安全性、實(shí)時(shí)性的操作系統(tǒng),廣泛應(yīng)用于任務(wù)關(guān)鍵領(lǐng)域,例如電力、軌道交通、車(chē)載系統(tǒng)、工業(yè)控制和新能源等。它的加入讓 RK3568 能夠保證系統(tǒng)實(shí)時(shí)性
    發(fā)表于 11-01 10:31

    快速部署Tensorflow和TFLITE模型Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署Tensorflow和TFLITE模型Jacinto7 Soc.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 11:41 ?0次下載
    快速<b class='flag-5'>部署</b><b class='flag-5'>Tensorflow</b>和TFLITE模型<b class='flag-5'>在</b>Jacinto7 Soc

    混合部署 | RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)-迅為電子

    混合部署 | RK3568同時(shí)部署RT-Thread和Linux系統(tǒng)-迅為電子
    的頭像 發(fā)表于 09-06 15:32 ?497次閱讀
    混合<b class='flag-5'>部署</b> | <b class='flag-5'>在</b>RK3568<b class='flag-5'>上</b>同時(shí)<b class='flag-5'>部署</b>RT-Thread和Linux系統(tǒng)-迅為電子

    AvaotaA1全志T527開(kāi)發(fā)板上部署ncnn

    ncnn 是一個(gè)為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計(jì)算框架。 ncnn 從設(shè)計(jì)之初深刻考慮手機(jī)端的部署和使用。 無(wú)第三方依賴(lài),跨平臺(tái),手機(jī)端 cpu 的速度快于目前所有已知的開(kāi)源框架
    發(fā)表于 07-22 10:36

    英國(guó)公司實(shí)現(xiàn)英偉達(dá)CUDA軟件AMD GPU的無(wú)縫運(yùn)行

    7月18日最新資訊,英國(guó)創(chuàng)新科技企業(yè)Spectral Compute震撼發(fā)布了其革命性GPGPU編程工具包——“SCALE”,該工具包實(shí)現(xiàn)了英偉達(dá)CUDA軟件AMD GPU的無(wú)縫遷移與運(yùn)行,標(biāo)志著
    的頭像 發(fā)表于 07-18 14:40 ?714次閱讀

    利用TensorFlow實(shí)現(xiàn)基于深度神經(jīng)網(wǎng)絡(luò)的文本分類(lèi)模型

    利用TensorFlow實(shí)現(xiàn)一個(gè)基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的文本分類(lèi)模型,我們首先需要明確幾個(gè)關(guān)鍵步驟:數(shù)據(jù)預(yù)處理、模型構(gòu)建、模型訓(xùn)練、模型評(píng)估與調(diào)優(yōu),以及最終的模型部署(盡管本文
    的頭像 發(fā)表于 07-12 16:39 ?957次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開(kāi)發(fā)的一個(gè)開(kāi)源深度學(xué)習(xí)框架,它允許開(kāi)發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機(jī)器學(xué)習(xí)模型。TensorFlow憑借其高效的計(jì)算性能、靈活的架構(gòu)以及豐富的工具和庫(kù),在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?818次閱讀

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

    PyTorch更簡(jiǎn)單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個(gè)易于使用、靈活且具有強(qiáng)大社區(qū)支持的框架,PyTorch可能是一個(gè)更好的選擇。如果您需要一個(gè)
    的頭像 發(fā)表于 07-05 09:45 ?977次閱讀

    tensorflow簡(jiǎn)單的模型訓(xùn)練

    本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡(jiǎn)單的模型訓(xùn)練。TensorFlow是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識(shí)別、自然語(yǔ)言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?787次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡(jiǎn)介 Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡(jiǎn)單、快速的方式來(lái)構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?594次閱讀

    如何使用Tensorflow保存或加載模型

    TensorFlow是一個(gè)廣泛使用的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它提供了豐富的API來(lái)構(gòu)建和訓(xùn)練各種深度學(xué)習(xí)模型。模型訓(xùn)練完成后,保存模型以便將來(lái)使用或部署是一項(xiàng)常見(jiàn)的需求。同樣,加載已保存的模型進(jìn)行預(yù)測(cè)或
    的頭像 發(fā)表于 07-04 13:07 ?1714次閱讀

    TensorFlow的定義和使用方法

    數(shù)據(jù)流圖,從而簡(jiǎn)化機(jī)器學(xué)習(xí)模型的構(gòu)建、訓(xùn)練和部署。自2015年11月開(kāi)源以來(lái),TensorFlow迅速成為數(shù)據(jù)科學(xué)家、軟件開(kāi)發(fā)者以及教育工作者廣泛使用的工具,廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)言處理、推薦系統(tǒng)等多個(gè)領(lǐng)域。本文將深入解讀Tenso
    的頭像 發(fā)表于 07-02 14:14 ?893次閱讀

    FPGA深度學(xué)習(xí)應(yīng)用中或?qū)⑷〈?b class='flag-5'>GPU

    上漲,因?yàn)槭聦?shí)表明,它們的 GPU 訓(xùn)練和運(yùn)行 深度學(xué)習(xí)模型 方面效果明顯。實(shí)際,英偉達(dá)也已經(jīng)對(duì)自己的業(yè)務(wù)進(jìn)行了轉(zhuǎn)型,之前它是一家純粹做 GPU 和游戲的公司,現(xiàn)在除了作為一家云
    發(fā)表于 03-21 15:19

    AMD GPU如何安裝和配置triton?

    最近在整理python-based的benchmark代碼,反過(guò)來(lái)NV的GPU又把Triton裝了一遍,發(fā)現(xiàn)Triton的github repo已經(jīng)給出了對(duì)應(yīng)的llvm的commit id以及對(duì)應(yīng)的編譯細(xì)節(jié),然后跟著走了一遍
    的頭像 發(fā)表于 02-22 17:04 ?2595次閱讀
    <b class='flag-5'>在</b>AMD <b class='flag-5'>GPU</b><b class='flag-5'>上</b>如何安裝和配置triton?
    风水24山详解| 百家乐官网的必胜方法| 百家乐平台哪个比较安全| 赌场百家乐官网技巧| 东方太阳城二期| 阴宅24山水口吉凶断| 淳安县| 威尼斯人娱乐城反水| 百家乐官网试玩| 百家乐官网玩法的秘诀| 太阳城网上| 百家乐怎么会赢| 波音百家乐官网自动投注| bet365 论坛| 百家乐007| 新花园百家乐官网的玩法技巧和规则| 吉林市| 大发888 casino| 百家乐视频游戏掉线| 云鼎百家乐官网程序开发有限公司| 六合彩历史开奖记录| 蓝盾百家乐庄家利润分| 广发百家乐官网的玩法技巧和规则| 运城市| 大发888 澳门赌场| 百家乐楼梯缆 | 新世纪| 御匾会百家乐的玩法技巧和规则| 风水24向| 百家乐保单破解方法| 百家乐官网博娱乐网提款速度快不| 真钱百家乐官网送钱| 现金网送体验金| 网上百家乐大转轮| 属狗与属鸡做生意| 伯爵百家乐官网娱乐平台| 百家乐官网视频挖坑| 百家乐赌博策略| 百家乐外挂程式| 东莞百家乐官网的玩法技巧和规则 | 百家乐正确的打法|