亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TensorFlow Serving的模型部署應(yīng)用及實踐

        2021-09-10 19:44:08翟高粵高乾龍趙云杰唐竹韻
        客聯(lián) 2021年6期
        關(guān)鍵詞:文件夾部署框架

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

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

        關(guān)鍵詞:深度學(xué)習(xí);TensorFlow Serving;CIFAR-10;神經(jīng)網(wǎng)絡(luò)模型部署

        在日常的生產(chǎn)應(yīng)用中,我們需要將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型部署到生產(chǎn)環(huán)境中,并能夠以服務(wù)的形式提供給生產(chǎn)應(yīng)用?;赥ensorFlow 編寫的神經(jīng)網(wǎng)絡(luò)模型部署有兩種方案可以選擇:一是基于Flask等 Web框架;二是基于TensorFlow Serving。

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

        一、TensorFlow Serving框架簡介

        TensorFlow Serving是一個高性能、開源的機(jī)器學(xué)習(xí)服務(wù)系統(tǒng),為生產(chǎn)環(huán)境部署及更新TensorFlow模型而設(shè)計。TensorFlow Serving能夠讓訓(xùn)練好的模型更快、更易于投入生產(chǎn)環(huán)境中使用,提供了高效、高可用的模型服務(wù)治理能力。

        二、TensorFlow Serving框架構(gòu)成

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

        (一)Servable

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

        (二)Source

        Source的作用是在文件系統(tǒng)中查找并提供Servable,每個Source可以提供多個Servable stream,并會為每個Servable stream提供一個Loader實例,使其可以被加載或者調(diào)用。 Source可以在不同的文件系統(tǒng)中查找可用的Servable,并且支持RPC協(xié)議進(jìn)行遠(yuǎn)程調(diào)用。

        (三)Loader

        Loader的作用是對Servable的生命周期進(jìn)行管理。Loader API是一個獨立于學(xué)習(xí)算法、數(shù)據(jù)或者產(chǎn)品用例的公共組件,并且可以使用 標(biāo)準(zhǔn)化API來加載或消亡一個Servable。

        (四) Manager

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

        三、TensorFlow Serving環(huán)境搭建

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

        使用Docker搭建TensorFLow Serving環(huán)境是非常方便和快捷的,在安裝好Docker環(huán)境之后,可以直接使用如下命令完成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項目工程結(jié)構(gòu)設(shè)計

        整個項目工程結(jié)構(gòu)分為兩部分:文件夾和代碼文件,在編程實踐中強(qiáng)烈建議采用文件夾和代碼文件的方式來設(shè)計項目工程結(jié)構(gòu)。所謂的文件夾和代碼文件的方式就是指把所有的Python代碼文件放在根目錄下,其他需要存放的靜態(tài)文件、訓(xùn)練數(shù)據(jù)文件和模型文件等都放在文件夾中。

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

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

        項目實現(xiàn)代碼包括工具類實現(xiàn)、模型文件導(dǎo)出模塊實現(xiàn)、模型文件部署模塊實現(xiàn)、Web應(yīng)用模塊實現(xiàn)的代碼。

        (一)工具類實現(xiàn)

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

        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)

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

        模型文件部署模塊主要實現(xiàn)對Tensorflow Serving服務(wù)的啟動和停止。部分關(guān)鍵代碼如下:

        try:

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

        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服務(wù)啟動成功” )

        Except KeyboardInterrupt:

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

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

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

        (三)Web應(yīng)用模塊實現(xiàn)

        Web應(yīng)用模塊主要實現(xiàn)預(yù)測、圖片上傳、預(yù)測結(jié)果返回等功能。

        五、結(jié)論

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

        參考文獻(xiàn):

        [1] 江寧遠(yuǎn)等.基于微服務(wù)的深度學(xué)習(xí)模型服務(wù)系統(tǒng)[J],軟件工程,2021(4).

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

        [3] 閆濤. 深度學(xué)習(xí)算法實踐 [M]. 電子工業(yè)出版社出版社,2020.

        [4] 王宇石等.一種基于卷積神經(jīng)網(wǎng)絡(luò)的違禁品探測系統(tǒng)及部署方法[J],科技創(chuàng)新與應(yīng)用,2020(7).

        猜你喜歡
        文件夾部署框架
        磁力文件夾
        框架
        一種基于Kubernetes的Web應(yīng)用部署與配置系統(tǒng)
        晉城:安排部署 統(tǒng)防統(tǒng)治
        廣義框架的不相交性
        部署
        調(diào)動右鍵 解決文件夾管理三大難題
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        部署“薩德”意欲何為?
        太空探索(2016年9期)2016-07-12 10:00:02
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        国产精品无码一本二本三本色| 国产视频在线观看一区二区三区| 国产亚洲av看码精品永久| 九九久久99综合一区二区| 亚洲精品国产v片在线观看| 欧美中出在线| 人妻在线有码中文字幕| 国产无套粉嫩白浆在线| 久久婷婷国产剧情内射白浆| 国产免费无码9191精品| 中文字幕午夜精品一区二区三区| 国产a级三级三级三级| 午夜三级a三级三点在线观看| av无码久久久久不卡网站下载| 成人片在线看无码不卡| 日本精品人妻一区二区| 亚洲欧洲成人精品香蕉网| 国产乱子伦精品免费无码专区 | 国产亚洲精品综合99久久| 东京热加勒比久久精品| 久久精品欧美日韩精品| 超91精品手机国产在线| 精品国产麻豆免费人成网站| 中文区中文字幕免费看| 伊人蕉久中文字幕无码专区| 8090成人午夜精品无码| 亚洲福利二区三区四区| 亚洲热线99精品视频| 国产真实露脸4p视频| 亚洲小少妇一区二区三区| 免费大片黄国产在线观看| 亚洲一区二区观看播放| 亚洲成片在线看一区二区| 19款日产奇骏车怎么样| 久久精品国产亚洲av麻豆| 国产亚洲女在线线精品| 久久精品国产精品亚洲艾| 日韩少妇内射免费播放18禁裸乳| 伊人久久成人成综合网222| 国产一区二区三区经典| 国产大屁股喷水视频在线观看|