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
主站蜘蛛池模板: 成人福利免费在线观看| 亚洲成综合人影院在院播放| а∨天堂一区中文字幕| 久久情精品国产品免费| 国产另类视频| 综合社区亚洲熟妇p| 97在线免费| julia中文字幕久久亚洲| 国产成年女人特黄特色大片免费| 538精品在线观看| 国产精品三区四区| 91网址在线播放| 亚洲人成亚洲精品| 亚洲狼网站狼狼鲁亚洲下载| 久久精品国产999大香线焦| 99爱在线| 亚洲精品卡2卡3卡4卡5卡区| 欧美成人亚洲综合精品欧美激情| 国产成人精品18| 午夜性爽视频男人的天堂| 亚洲中文无码av永久伊人| 一级一级特黄女人精品毛片| 亚洲综合日韩精品| 免费va国产在线观看| 在线看片国产| 1769国产精品免费视频| h视频在线播放| 亚洲一区二区三区在线视频| 精品伊人久久久香线蕉| 在线欧美国产| 欧美日韩成人在线观看| 91精品国产丝袜| 国产va免费精品观看| 精品国产一二三区| 国产在线观看91精品| 2021国产精品自拍| 99视频在线免费观看| 国产三级视频网站| 九九热精品视频在线| 国产特级毛片aaaaaaa高清| 在线一级毛片| 欧美va亚洲va香蕉在线| 亚洲精品无码AⅤ片青青在线观看| 亚洲无限乱码| 亚洲精品大秀视频| 欧美a级在线| 伊人久久青草青青综合| 精品国产乱码久久久久久一区二区| 国产精品欧美日本韩免费一区二区三区不卡 | 久久情精品国产品免费| 日本免费a视频| 国产尤物视频网址导航| 久久综合九九亚洲一区| 色综合a怡红院怡红院首页| 亚洲V日韩V无码一区二区| 午夜成人在线视频| 97成人在线观看| 精品99在线观看| 欧美激情伊人| 国产香蕉97碰碰视频VA碰碰看| 伊人91视频| 欧美色视频日本| 特级做a爰片毛片免费69| 一级高清毛片免费a级高清毛片| 国产成人免费视频精品一区二区| 热思思久久免费视频| 四虎永久免费网站| 亚洲午夜国产精品无卡| 国产在线精彩视频二区| 夜精品a一区二区三区| 狠狠色香婷婷久久亚洲精品| 国产欧美日韩综合一区在线播放| 亚洲国产精品一区二区高清无码久久| 亚洲综合专区| 97在线免费| 国产真实乱了在线播放| a级毛片免费播放| 一区二区三区四区在线| 中文字幕第4页| 亚洲乱码在线播放| 国产在线八区| 波多野结衣的av一区二区三区|