當前位置:
首頁 > 知識 > 十分鐘搞定 Tensorflow 服務

十分鐘搞定 Tensorflow 服務

歡迎大家參與在留言區交流

AI 研習社兩大福利就在文末!

不可錯過~

Tensorflow 服務是谷歌推薦用來部署 Tensorflow 模型的方法。如果你不具備一定的計算機工程知識背景,即使你對 Tensorflow 本身感覺很順手,但是我覺得想要搞定 Tensorflow 服務也不是辣么容易的。以下三點是我總結的難點:

(谷歌官方)教程含有 C++ 代碼(我不會 C++)

教程里含有 kubernetes,gRPG,Bezel(其中一些我也是第一次見)

需要被編譯出來。那個過程時間太長了,恐怕要用一個世紀吧!

這裡介紹一種可能是最簡單的方式——用 tensorflow 服務部署你的演算法模型。看完本教程,你也可以讓自己的模型在 TF 服務裡面運行。這個服務框架是彈性的,可以通過 REST 來請求。

本教程用的是 Docker 鏡像。可以利用 Kitematic 來啟動:

起初,我試著在 DockerHub 上面搞 - 但是試了兩個小時都沒成功,所以我不得不棄坑去用 https://quay.io

我將一步步做好的鏡像上傳到 DockerHub,假如你想驗證本文,你可以去拉取 https://quay.io/repository/avloss/tensorflow-serving-rest 上的鏡像。

你可以用 Kitematic 啟動 Docker 容器,或者在 console 裡面用這行命令:

運行之後,執行這個腳本 http://localhost:8888/notebooks/tf_serving_rest_example.ipynb。(如果你用的是 Kitematic 的話,埠號要改改)

下面的內容最好用容器自帶的 Jupyter notebook!

為了進一步演示運行細節,我們下面用典型的 TF 官方教程 MNIST 示例:https://www.tensorflow.org/get_started/mnist/pros

我們用一個標準模型來舉個例子。

另外,我們說明一下值,該值就是我們得到的預測值。

我們下載示例訓練部分的代碼並訓練這個模型。

接下來確保一切都如預期的那樣。我們用數據集中某個數字的圖片。

確認一下我們的模型可以很快得到預測結果:

這個示例 99% 管用!

現在我們要保存這個模型,並把它放在 tensorflow 服務裡面供外部調用。我們為要保存的權重和模型版本的定義一下保存路徑。

注意,如果你想保存另外一個模型的話,需要調高 「VERSION」 基準值,並且重構你的計算圖(重啟這 Jupyter notbook 腳本)。

這裡我們保存得到的權重值。

下面讓我們確認一下權重是否保存正確。

Services

當這個 Docker 鏡像啟動時,會運行 "example_jupyter/setup.sh"。其實下面的服務已經啟動:

這就是我們現在要運行的 jupyter notebook。

這是 TF 模型服務正在運行。它來自 TF 服務的標準分散式,使用 gRPC 協議調用模型。

我還把這個 Flask web 應用從 REST請求轉成 gPRC 請求。這樣做可能會降低運行性能,但是至少能把每一步過程搞清楚 - 你可以在下面的網頁中找到代碼:.

讓我們驗證一下 TF 模型伺服器。截至目前,伺服器一直處於空閑狀態,正在等待文件夾里出現一個模型。我們現在可以檢查一下日誌來確定伺服器辨識並載入了剛剛存檔的模型:

REST 請求

接下來的部分可以單獨運行之前做的 - 因此你可以在不同的 notebook 運行,或者說甚至在別的主機上運行

下面是用 REST 調用我們模型的函數的示例。

確保對訓練數據依然有效。

預測過程

最後,用 Tensorflow 服務做預測。

從這裡提取得到的預測值

完成!

就這樣,你學會用 Tensorflow 服務的 Docker 容器調用 tensorflow 模型。這個模型需要 REST 或者 gRPC(埠 9000)

也容易導出 Docker 鏡像,可以在任何地方執行。在你的主機終端上執行下面的命令。

會顯示你正在運行的容器的 ID,在下面的命令中用這容器 ID 替代 「xxxxx"。

你的(內置模型的)Docker 鏡像保存在 "tar」 包里,便於移動。我認為是這不是最佳實踐,但是有用。如果把這文件解壓到伺服器,用下面的命令執行。

這你就在新的伺服器里運行你的模型。希望這篇博文能幫助到大家。

本期雷鋒字幕組志願者

另外,「雷鋒字幕組」也在招募更多的小夥伴加入。目前組內有來自華為、騰訊等大公司的 AI 從業者及高校青年學者。加入字幕組不僅可以結識很多志趣相投的夥伴,還能獲得雷鋒網內部的獨家資源福利,包括不定期線下聚會,免費的 AI 課程等。 有點心動?不如行動。

新人福利

【超過 1000G 神經網路/AI/大數據、教程、論文!】

福利二:上周送書獲獎人員明天公布!

新一期送書活動即將再度開始!

你想要什麼書?Deep Learning還是TensorFlow?

在評論區說出任何你想要的書

可能本周就送它呢?

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 唯物 的精彩文章:

憑什麼蘋果奪得CVPR最佳論文?看完本文你就清楚!
用Kaggle經典案例教你用CNN做圖像分類!
利用卷積自編碼器對圖片進行降噪
7個深度神經網路可視化工具,不可錯過!
用python 6步搞定從照片到名畫,你學你也可以

TAG:唯物 |

您可能感興趣

Corona Corporation改由Rimini Street提供Oracle EBS支持服務
Google Maps Platform 為第三方提供基於定位的服務
Uber推出Eats for Business商務訂餐服務
小技巧:Windows 10 Mobile中啟用Microsoft Edge PWA服務
Avante Technology發布Emendo Cloud 3D列印文件自動分析和維修服務
uCloudlink 推出創新移動數據服務 「GlocalMe Inside」
Google為開發者提供Cloud Filestore雲存儲服務
使用BurpSuite的Collaborator查找.Onion隱藏服務的真實IP地址
Google 將把餐廳評論服務 Zagat 賣給 The Infatuation
Facebook宣布關停Moves、Hello、tbh三項服務
Rackspace推出Kubernetes即服務產品,並收購RelationEdge
看我如何發現微軟Microsoft Translator Hub服務高危漏洞
蘋果修復大量iCloud相關服務 iTunes Store癱瘓
Rimini Street為Solar Frontier提供一流的SAP支持服務
spring-cloud 服務網關中的 Timeout 設置
SpringCloud之服務提供與調用(Ribbon,Feign)
任天堂公布Nintendo Switch Online會員服務詳情,五大服務開啟
天維信通詳解AWS Direct Connect Gateway服務
Merlin拋售全部Spotify股票 YouTube推出全新付費服務YouTube Premium
微服務監控之Spring Boot Admin