999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TensorFlow Serving的模型部署應用及實踐

2021-09-10 19:44:08翟高粵高乾龍趙云杰唐竹韻
客聯 2021年6期
關鍵詞:環境服務模型

翟高粵 高乾龍 趙云杰 唐竹韻

摘 要:深度學習通常需要把訓練好的神經網絡模型部署到生產環境中,并能夠以服務的形式提供給生產應用。常用的兩種方案是基于Flask和基于TensorFlow Serving。本文先對TensorFlow Serving框架進行介紹,然后對環境的搭建進行說明,最后通過一個工程項目詳細說明TensorFlow Serving框架的部署方法。

關鍵詞:深度學習;TensorFlow Serving;CIFAR-10;神經網絡模型部署

在日常的生產應用中,我們需要將訓練好的神經網絡模型部署到生產環境中,并能夠以服務的形式提供給生產應用。基于TensorFlow 編寫的神經網絡模型部署有兩種方案可以選擇:一是基于Flask等 Web框架;二是基于TensorFlow Serving。

TensorFlow Serving是一個用于機器學習模型serving的高性能開源庫。它可以將訓練好的機器學習模型部署到線上,使用gRPC作為接口接受外部調用。它支持模型熱更新與自動模型版本管理。一旦部署TensorFlow Serving后,不需要為線上服務操心,只需要關心你的線下模型訓練。本文接下來將介紹使用TensorFlow Serving進行模型部署的方案,并以訓練好的基于CNN的CIFAR-10圖像分類模型為部署案例進行詳細說明。

一、TensorFlow Serving框架簡介

TensorFlow Serving是一個高性能、開源的機器學習服務系統,為生產環境部署及更新TensorFlow模型而設計。TensorFlow Serving能夠讓訓練好的模型更快、更易于投入生產環境中使用,提供了高效、高可用的模型服務治理能力。

二、TensorFlow Serving框架構成

TensorFlow Serving包含四個核心模塊,分別是Servable、 Source、Loader和Manager,根據對官方文檔的研究,以這四個模塊為基礎繪制出TensorFlow Serving的整體架構,如圖1所示。下面簡單介紹架構中各個模塊的定義。

(一)Servable

Servable是用于執行計算的底層對象。單個Servable的大小和粒度是靈活可變的,因此其可以包括從單個模型到多個模型組合的所有信息。為了保證靈活性和可擴展性,Servable可以是任意類型或者接口,比如Streaming result、Experimental API、Asynchronous modes of operation等。

(二)Source

Source的作用是在文件系統中查找并提供Servable,每個Source可以提供多個Servable stream,并會為每個Servable stream提供一個Loader實例,使其可以被加載或者調用。 Source可以在不同的文件系統中查找可用的Servable,并且支持RPC協議進行遠程調用。

(三)Loader

Loader的作用是對Servable的生命周期進行管理。Loader API是一個獨立于學習算法、數據或者產品用例的公共組件,并且可以使用 標準化API來加載或消亡一個Servable。

(四) Manager

Manager會監聽Source來跟蹤所有的Servable版本,在資源充足的 情況下,Manager會加載從Source監聽到的所有需要加載的Servable,但是當資源不足時會拒絕加載Servable的新請求。在Manager中支持基于策略的Servable卸載管理,當策略是保證在所有時間內至少有一個Servable版本被加載時,在新的Servable完成加載前Manager會延遲卸載老版本的Servable。

三、TensorFlow Serving環境搭建

TensorFlow Serving環境搭建有基于Docker和Ubuntu 16.04兩種方式,其中基于Docker的搭建方式具有跨平臺、操作簡單的特點,但是屏蔽了搭建細節;基于Ubuntu 16.04的搭建方式則要求掌握一定的Linux環境的軟件安裝知識。下面以基于Docker搭建TensorFlow Serving環境為例,說明搭建的方法。

使用Docker搭建TensorFLow Serving環境是非常方便和快捷的,在安裝好Docker環境之后,可以直接使用如下命令完成Docker鏡像的 下載和運行。

docker pull tensorflow/serving

docker run -p 8500:8500 -p 8501:8501 --name tfserving_resnet \

-- mount type=bind,source=/tmp/resnet,target=/models/resnet \

-e MODEL_NAME=resnet -t tensorflow/serving

四、基于TensorFlow Serving項目工程結構設計

整個項目工程結構分為兩部分:文件夾和代碼文件,在編程實踐中強烈建議采用文件夾和代碼文件的方式來設計項目工程結構。所謂的文件夾和代碼文件的方式就是指把所有的Python代碼文件放在根目錄下,其他需要存放的靜態文件、訓練數據文件和模型文件等都放在文件夾中。

本項目分為三個部分,分別是模型文件導出模塊、模型文件部署模塊和Web應用模塊。模型文件導出模塊提供了將已經加載的模型導出TensorFlow Serving部署所需的文件;模型文件部署模塊提供了TensorFlow Serving部署功能;Web應用模塊提供了可視化人機交互功能。

在文件夾中,model_dir存放訓練完成的模型文件, predict_images存放我們上傳的需要預測的圖像,serving_model存放TensorFlow Serving部署所需的文件,static和templates存放Web應用 程序所需的HTML、JS等靜態文件。

項目實現代碼包括工具類實現、模型文件導出模塊實現、模型文件部署模塊實現、Web應用模塊實現的代碼。

(一)工具類實現

在實際的項目中,我們往往需要對參數進行頻繁的調整,因此這里定義一個工具類來讀取配置文件中的配置參數,這樣在調參時只需要對配置文件中的參數進行調整,即可實現對全部參數的調整。部分關鍵代碼如下:

def get_config(config_file=’config.ini’):

parser=configparser.ConfigParser()

parser.read(config_file)

_conf_ints=[(key,int(value)) for key,value in parser.items(‘floats’)]

_conf_floats=[(key,str(value)) for key,value in parser.items(‘strings’)]

return dict(_conf_ints+_conf_floats+_conf_strings)

(二)模型文件部署模塊實現

模型文件部署模塊主要實現對Tensorflow Serving服務的啟動和停止。部分關鍵代碼如下:

try:

#先啟動TensorFlow Serving服務,完成模型的部署

tf_model_server=subprocess.Popen([“tensorflow_model_server””--model_base_path=

gConfig[‘exeport_dir’]”

“--rest_api_port=gConfig[‘server_port’]

--model_name=ImageClassifier”],

Stdout=subprocess.DEVNULL,shell=True,preexec_fn=os.setsid)

Print(“TensorFlow Serving服務啟動成功” )

Except KeyboardInterrupt:

Print(“停止所有服務中....”)

Os.killpg(os.getpgid(tf_mod_server.pid)

Print(“所有服務停止成攻”)

(三)Web應用模塊實現

Web應用模塊主要實現預測、圖片上傳、預測結果返回等功能。

五、結論

TensorFlow Serving是google開源的一個適用于部署機器學習模型,具有靈活、高性能、可用于生產環境的模型框架。它支持模型版本控制和回滾;支持并發;支持多模型部署;支持模型熱更新等,由于這些特性,使得我們不需要為部署線上服務而操心,只需要訓練好線下模型即可。同時,TensorFlow Serving還提供gRPC和REST API兩種接口訪問形式,其中gRPC接口對應的端口號為8500,而REST API對應的端口號為8501。本文為應用TensorFlow Serving框架的技術人員提供了一個較為詳細的使用價值。

參考文獻:

[1] 江寧遠等.基于微服務的深度學習模型服務系統[J],軟件工程,2021(4).

[2] 李建明等.基于深度學習的工業自動化包裝缺陷檢測方法[J],包裝工程,2021(4).

[3] 閆濤. 深度學習算法實踐 [M]. 電子工業出版社出版社,2020.

[4] 王宇石等.一種基于卷積神經網絡的違禁品探測系統及部署方法[J],科技創新與應用,2020(7).

猜你喜歡
環境服務模型
一半模型
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
孕期遠離容易致畸的環境
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
環境
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
主站蜘蛛池模板: 爆乳熟妇一区二区三区| 久久精品66| 国产精品美女在线| 国产美女在线免费观看| 在线永久免费观看的毛片| www.亚洲天堂| 欧美成人一级| 欧美无专区| 国产免费a级片| 国产三级a| 日韩av手机在线| 99久久国产综合精品女同| 午夜啪啪福利| 久久久久无码精品国产免费| 国产无人区一区二区三区 | 91无码网站| 永久免费av网站可以直接看的| 亚洲伊人久久精品影院| 丁香五月婷婷激情基地| 麻豆国产在线观看一区二区| 成人在线不卡视频| 国产成人亚洲综合a∨婷婷| 国产亚洲美日韩AV中文字幕无码成人| 国产va免费精品观看| 国产精品男人的天堂| 日韩在线欧美在线| 亚洲色图在线观看| 麻豆精品视频在线原创| 97超碰精品成人国产| 一级福利视频| 亚洲色成人www在线观看| 成年看免费观看视频拍拍| 久久香蕉国产线看观| 国产一区二区三区夜色| 制服丝袜一区| 毛片网站在线播放| 欧美亚洲国产精品久久蜜芽| 99久久免费精品特色大片| 91口爆吞精国产对白第三集| 国产成人久视频免费| 97视频免费看| 久久久久亚洲AV成人网站软件| 国产一区二区三区日韩精品| 亚洲妓女综合网995久久| 亚洲AV无码乱码在线观看裸奔| 中文字幕欧美日韩| 欧美在线导航| 国产香蕉在线| 亚洲精品少妇熟女| 国产哺乳奶水91在线播放| 99久久国产精品无码| 亚洲欧洲日韩久久狠狠爱| 欧美精品综合视频一区二区| 国产精品女同一区三区五区| 午夜视频日本| 四虎精品国产永久在线观看| 中文字幕免费在线视频| 中文字幕亚洲另类天堂| 呦系列视频一区二区三区| 毛片基地美国正在播放亚洲 | 一级毛片免费播放视频| 69免费在线视频| 18禁黄无遮挡免费动漫网站| 日韩色图区| 国产精品流白浆在线观看| 99久久精品无码专区免费| 欧美性久久久久| 国产96在线 | 99re在线免费视频| 日韩a在线观看免费观看| 国模粉嫩小泬视频在线观看| 久久人搡人人玩人妻精品一| 久久久久国产精品免费免费不卡| 大陆精大陆国产国语精品1024| 九色视频线上播放| 国产精品亚洲αv天堂无码| 亚洲av无码牛牛影视在线二区| 亚洲看片网| 超碰免费91| 国产AV无码专区亚洲精品网站| 日韩在线播放欧美字幕| 久久影院一区二区h|