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

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

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

3天內不再提示

在GPU上利用TensorFlow Serving 部署ResNet

Tensorflowers ? 來源:lp ? 2019-03-05 17:51 ? 次閱讀

TensorFlow Serving 是用于機器學習模型的高性能靈活服務系統,而 NVIDIA TensorRT? 是實現高性能深度學習推理的平臺,通過將二者相結合,用戶便可獲得更高性能,從而輕松實現 GPU 推理。TensorFlow 團隊與 NVIDIA 合作,在 TensorFlow v1.7 中首次添加了對 TensorRT 的支持。此后,我們一直密切合作,共同改進 TensorFlow-TensorRT 集成(稱為 TF-TRT)。TensorFlow Serving 1.13 現已實現這種集成,TensorFlow 2.0 很快也會進行集成。

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

注:ResNet 鏈接

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

在 GPU 上利用 TensorFlow Serving 部署 ResNet

在這項練習中,我們僅下載 經過預訓練的 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

注:經過預訓練的 ResNet 鏈接

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

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

$ 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 命令會啟動 TensorFlow Serving 服務器,以提供 /tmp/resnet 中已下載的 SavedModel,并在主機中開放 REST API 端口 8501。resnet_client.py 會發送一些圖像給服務器,并返回服務器所作的預測?,F在讓我們終止 TensorFlow Serving 容器的運行,以釋放所占用的 GPU 資源。

$ docker kill tfserving_resnet

注:REST API 鏈接

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

利用 TF-TRT 轉換和部署模型

現在,我們有了工作模型。為了享受 TensorRT 帶來的好處,我們需要在 TensorFlow Serving Docker 容器內運行轉換命令,從而將此模型轉換為使用 TensorRT 運行運算的模型:

$ 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

在這里,我們運行了 saved_model_cli 命令行工具,其中內置了對 TF-TRT 轉換的支持。--dir 和 --output_dir 參數會指示 SavedModel 的位置以及在何處輸出轉換后的 SavedModel,而 --tag_set 則指示 SavedModel 中要轉換的圖表。隨后,我們在命令行中傳遞 tensorrt 并指定配置,明確指示其運行 TF-TRT 轉換器

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

--max_batch_size 指示輸入的批次大小上限。此轉換器要求將由 TensorRT 處理的所有張量將其首個維度作為批次維度,而該參數則指示推理過程中會產生的最大值。若已知推理過程中的實際批次大小上限且該值與之匹配,則轉換后的模型即為最優模型。請注意,轉換后的模型無法處理批次規模大于此處所指定大小的輸入,但可處理批次規模更小的輸入

--is_dynamic_op 指示在模型運行時進行實際轉換。原因在于,在進行轉換時,TensorRT 需要明確所有形狀。對于本例中使用的 ResNet 模型,其張量沒有固定的形狀,因此我們需要此參數

注:saved_model_cli 鏈接

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

現在,我們只需為模型指定正確的目錄,便可利用 Docker 提供經 TF-TRT 轉換的模型,這與之前一樣簡單:

$ 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 …

向其發送請求:

$ python /tmp/resnet/resnet_client.py

Prediction class:286, avg latency:15.0287 ms

最后,我們終止容器的運行:

$ docker kill tfserving_resnet

我們可以看到,使用 TensorFlow Serving 和 Docker 生成經 TF-TRT 轉換的模型與提供一般模型一樣簡單。此外,以上為展示內容,其中的性能數字僅適用于我們所使用的模型和運行本示例的設備,但它的確展現出使用 TF-TRT 所帶來的性能優勢。

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

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

    關注

    28

    文章

    4887

    瀏覽量

    130444
  • 機器學習
    +關注

    關注

    66

    文章

    8481

    瀏覽量

    133896
  • tensorflow
    +關注

    關注

    13

    文章

    330

    瀏覽量

    60954

原文標題:利用 NVIDIA TensorRT 優化 TensorFlow Serving 的性能

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于RV1126開發板的resnet50訓練部署教程

    本教程基于圖像分類算法ResNet50的訓練和部署到EASY-EAI-Nano(RV1126)進行說明
    的頭像 發表于 04-18 15:07 ?236次閱讀
    基于RV1126開發板的<b class='flag-5'>resnet</b>50訓練<b class='flag-5'>部署</b>教程

    使用OpenVINO? 2020.4.582將自定義TensorFlow 2模型轉換為中間表示 (IR)收到錯誤怎么解決?

    轉換自定義 TensorFlow 2 模型 mask_rcnn_inception_resnet_v2_1024x1024_coco17 要 IR 使用模型優化器命令: 注意上面的鏈接可能無法
    發表于 03-07 07:28

    無法GPU運行ONNX模型的Benchmark_app怎么解決?

    CPU 和 GPU 運行OpenVINO? 2023.0 Benchmark_app推斷的 ONNX 模型。 CPU 推理成功
    發表于 03-06 08:02

    是否可以使用OpenVINO?部署管理器部署機器運行Python應用程序?

    使用 OpenVINO?部署管理器創建運行時軟件包。 將運行時包轉移到部署機器中。 無法確定是否可以部署機器運行 Python 應用程
    發表于 03-05 08:16

    為什么無法將TensorFlow自定義模型轉換為IR格式?

    TensorFlow* 自定義模型轉換為 IR 格式: mo --data_type FP16 --saved_model_dir--input_shape (1,150,150,3
    發表于 03-05 07:26

    設備利用AI Edge Torch生成式API部署自定義大語言模型

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

    快速部署Tensorflow和TFLITE模型Jacinto7 Soc

    電子發燒友網站提供《快速部署Tensorflow和TFLITE模型Jacinto7 Soc.pdf》資料免費下載
    發表于 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同時部署RT-Thread和Linux系統-迅為電子

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

    AvaotaA1全志T527開發板上部署ncnn

    ncnn 是一個為手機端極致優化的高性能神經網絡前向計算框架。 ncnn 從設計之初深刻考慮手機端的部署和使用。 無第三方依賴,跨平臺,手機端 cpu 的速度快于目前所有已知的開源框架
    發表于 07-22 10:36

    利用TensorFlow實現基于深度神經網絡的文本分類模型

    利用TensorFlow實現一個基于深度神經網絡(DNN)的文本分類模型,我們首先需要明確幾個關鍵步驟:數據預處理、模型構建、模型訓練、模型評估與調優,以及最終的模型部署(盡管本文
    的頭像 發表于 07-12 16:39 ?1315次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發的一個開源深度學習框架,它允許開發者方便地構建、訓練和部署各種復雜的機器學習模型。TensorFlow憑借其高效的計算性能、靈活的架構以及豐富的工具和庫,在學
    的頭像 發表于 07-12 16:38 ?1094次閱讀

    tensorflow和pytorch哪個更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個易于使用、靈活且具有強大社區支持的框架,PyTorch可能是一個更好的選擇。如果您需要一個
    的頭像 發表于 07-05 09:45 ?1282次閱讀

    tensorflow簡單的模型訓練

    本文中,我們將詳細介紹如何使用TensorFlow進行簡單的模型訓練。TensorFlow是一個開源的機器學習庫,廣泛用于各種機器學習任務,包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發表于 07-05 09:38 ?1111次閱讀

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

    TensorFlow是一個廣泛使用的開源機器學習庫,它提供了豐富的API來構建和訓練各種深度學習模型。模型訓練完成后,保存模型以便將來使用或部署是一項常見的需求。同樣,加載已保存的模型進行預測或
    的頭像 發表于 07-04 13:07 ?2365次閱讀

    TensorFlow的定義和使用方法

    數據流圖,從而簡化機器學習模型的構建、訓練和部署。自2015年11月開源以來,TensorFlow迅速成為數據科學家、軟件開發者以及教育工作者廣泛使用的工具,廣泛應用于圖像識別、自然語言處理、推薦系統等多個領域。本文將深入解讀Tenso
    的頭像 發表于 07-02 14:14 ?1230次閱讀
    主站蜘蛛池模板: 日韩精品卡4卡5卡6卡7卡 | 成人看的午夜免费毛片 | 俺来也久久| 超级乱淫伦网站 | 黄色片链接 | 天天摸日日碰天天看免费 | 97在线精品 | 激情综合五月网 | 色婷婷婷婷 | bt天堂在线www最新版资源网 | 五月天婷婷导航 | 大黄网站色多多 | 久久久精品2021免费观看 | va在线观看 | 高清视频黄色录像免费 | 欧美日韩国产一区二区三区不卡 | 成人免费看黄网站yyy456 | 6080国产午夜精品 | 80s国产成年女人毛片 | 天天爽夜夜爽8888视频精品 | 女女同免费播放毛片 | 成年美女黄网站色大免费视频 | 丝袜紧身裙国产在线播放 | 韩国三级理在线视频观看 | 天天se天天cao综合网蜜芽 | 99久久99久久久99精品齐 | 国产一级在线观看 | 国产成人小视频 | 天天操天天插天天干 | 都市激情综合网 | 91大神视频网站 | 天天操天天操天天操香蕉 | 免费在线h视频 | 高清一区二区三区四区五区 | 欧美日本一道免费一区三区 | 亚洲人成综合网站在线 | 优优优色 | 日韩午夜免费 | 天堂网在线资源www最新版 | 女人aaaaa片一级一毛片 | 天天操天天干天搞天天射 |