实操将TensorFlow模型部署成Docker服务化
背景
深度學(xué)習(xí)模型如何服務(wù)化是一個(gè)機(jī)器學(xué)習(xí)領(lǐng)域工程方面的熱點(diǎn),現(xiàn)在業(yè)內(nèi)一個(gè)比較主流的做法是將模型和模型的服務(wù)環(huán)境做成docker image。這樣做的一個(gè)好處是屏蔽了模型對(duì)環(huán)境的依賴,因?yàn)樯疃葘W(xué)習(xí)模型在服務(wù)的時(shí)候可能對(duì)各種框架版本和依賴庫(kù)有要求,解決運(yùn)行環(huán)境問題一直是個(gè)令人頭痛的事情。
將模型通過docker服務(wù)化后意味著深度學(xué)習(xí)模型可以在各種環(huán)境使用,比如云端直接通過k8s調(diào)度拉起,或者在一些IOT領(lǐng)域,比方說一些智能攝像頭也可以通過拉起鏡像服務(wù)的方式使用模型。
?
看來一些網(wǎng)上的資料,發(fā)現(xiàn)大部分資料沒有講得很清楚如何容器化部署TF模型,今天把我自己的學(xué)習(xí)筆記分享下。
詳細(xì)流程
模型部署分4步,首先要準(zhǔn)備一個(gè)TensorFlow模型,還要準(zhǔn)備一個(gè)docker環(huán)境,接著構(gòu)建自己的docker服務(wù),然后發(fā)送請(qǐng)求給docker服務(wù)做測(cè)試。
1.準(zhǔn)備TensorFlow模型
可以直接clone這個(gè)項(xiàng)目:https://github.com/tensorflow/serving
然后找到以下這個(gè)路徑下的叫“saved_model_half_plus_two_cpu”這個(gè)模型,這個(gè)模型比較簡(jiǎn)單,就是將預(yù)測(cè)數(shù)據(jù)除以2再加2。舉個(gè)例子,假設(shè)預(yù)測(cè)數(shù)據(jù)是5,那么預(yù)測(cè)結(jié)果是5/2+2=4.5
/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu2.準(zhǔn)備Docker環(huán)境
直接在這個(gè)地址下載:https://docs.docker.com/get-docker/
安裝完成后可以在Terminal中輸入docker -v,返回版本號(hào)信息說明安裝完成:
?
3.構(gòu)建TensorFlow模型服務(wù)
(1)首先要從docker倉(cāng)庫(kù)拉取TensorFlow Serving
docker pull tensorflow/serving(2)構(gòu)建模型服務(wù)
命令如下:
docker run -t --rm -p 8501:8501 -v "{model_path}:/models/half_plus_two" -e MODEL_NAME=half_plus_two tensorflow/serving &-
其中{model_path}需要替換成步驟一中下載好的模型
-
-p表示端口號(hào),8500是grpc通信端口,8501是restful_api通信端口
-
/models/half_plus_two表示把本地模型放到了docker中的/models/half_plus_two路徑下
如果不報(bào)錯(cuò),這個(gè)服務(wù)就順利拉起來了。
4.測(cè)試docker服務(wù)
可以通過curl命令發(fā)送預(yù)測(cè)樣本給已經(jīng)部署好的docker服務(wù),具體命令如下:
curl -d '{"instances": [1.0, 2.0, 5.0]}' -X POST http://localhost:8501/v1/models/half_plus_two:predict預(yù)測(cè)樣本是“instances": [1.0, 2.0, 5.0],預(yù)測(cè)結(jié)果如下,結(jié)果是正確的,每個(gè)輸入值都被除以2再加上2:
"predictions": [2.5, 3.0, 4.5]?
總結(jié)
以上是生活随笔為你收集整理的实操将TensorFlow模型部署成Docker服务化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈主动学习(Active Learni
- 下一篇: 互联网男士穿搭推荐-2020年新版