使用C#把Tensorflow训练的.pb文件用在生产环境
訓(xùn)練了很久的Tf模型,終于要到生產(chǎn)環(huán)境中去考驗一番了。今天花費了一些時間去研究tf的模型如何在生產(chǎn)環(huán)境中去使用。大概整理了這些方法。
繼續(xù)使用分步驟保存了的ckpt文件
這個貌似脫離不了tensorflow框架,而且生成的ckpt文件比較大,發(fā)布到生產(chǎn)環(huán)境的時候,還得把python的算法文件一起搞上去,如何和其他程序交互,可能還得自己去寫服務(wù)。估計很少有人這么做,貌似性能也很一般。
使用tensorflow Serving
tf Serving貌似是大家都比較推崇的方法。需要編譯tfServing,然后把模型導(dǎo)出來。直接執(zhí)行tf Serving的進(jìn)程,就可以對外提供服務(wù)了。具體調(diào)用的時候,還得自己寫客戶端,使用人gRPC去調(diào)用Serving,然后再對外提供服務(wù),聽上去比較麻煩。而且我今天沒太多的時間去研究gRPC,網(wǎng)絡(luò)上關(guān)于客戶端很多都是用python寫的,我感覺自己的python水平比較菜,沒信心能寫好。所以這個方式就先沒研究。
生產(chǎn).pb文件,然后寫程序去調(diào)用.pb文件
生成了.pb文件以后,就可以被程序去直接調(diào)用,傳入?yún)?shù),然后就可以傳出來參數(shù),而且生成的.pb文件非常的小。而我又有比較豐富的.net開發(fā)經(jīng)驗。在想,是否可以用C#來解析.pb文件,然后做一個.net core的對外服務(wù)的API,這樣貌似更加高效,關(guān)鍵是自己熟悉這款的開發(fā),不用花費太多的時間去摸索。、
具體的思路
使用.net下面的TensorFlow框架tensorflowSharp(貌似還是沒脫離了框架).去調(diào)用pb文件,然后做成.net core web API 對外提供服務(wù)。
具體的實現(xiàn)
直接上代碼,非常簡單,本身設(shè)計到tensorflowsharp的地方非常的少
ImageUtil這個類庫是tensorflowSharp官方的例子中一個把圖片轉(zhuǎn)成tensor的類庫,我直接copy過來了,根據(jù)我的網(wǎng)絡(luò),修改了幾個參數(shù)。
相關(guān)文章:
TensorFlowSharp入門使用C#編寫TensorFlow人工智能應(yīng)用
原文地址: https://www.cnblogs.com/bbird/p/9953749.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的使用C#把Tensorflow训练的.pb文件用在生产环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【招聘(广州)】 招聘.NET程序员
- 下一篇: [译]RabbitMQ教程C#版 - 远