欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

tensorflow模型部署系列————單機python部署(附代碼)

系統 1704 0

摘要

本文為系列博客tensorflow模型部署系列的一部分,用于實現通用模型的部署。通用主要體現在通過tensorboard圖從已保存的模型中還原并查看模型詳細結構,以及自定義模型的輸入輸出tensor。相關源碼見鏈接


引言

本文為系列博客 tensorflow模型部署系列的一部分,用于 python 語言實現通用模型的部署。通用主要體現在通過 tensorboard 圖從已保存的模型中還原并查看模型詳細結構,以及自定義模型的輸入輸出tensor。本文主要使用keras和pb兩種模型文件,其它格式的模型文件請先進行格式轉換tensorflow模型部署系列————預訓練模型導出

主題

上一篇博文tensorflow模型部署系列————預訓練模型導出就如何將模型導出為文件以及如何利用模型文件進行推理進行講解,博文中也開放了使用 python 進行模型推理的代碼,本文也是使用python進行模型推理。主要區別在于:

  1. 將模型推理代碼對象化,分離模型加載和模型推理為不同的方法,以減少實際部署時速度過慢問題
  2. 有時我們拿到的只有模型文件,如網上下載、比賽提交代碼、前同事留下的模型等等。我們并不知道這些模型文件的具體結構及內部張量名稱,使得模型部署無法進行。本文會介紹查看模型文件模型結構及張量名稱的通用方法,進行可以對任意模型文件進行部署

查看已保存模型的結構

keras模型文件

  • 打印模型結構 model.summary()

  • 繪制簡單的模型圖 keras.utils.plot_model(model,'./keras/model.png')

  • 生成tensorboard文件

                    
                      tensorboard_callback = keras.callbacks.TensorBoard('./keras')
    tensorboard_callback.set_model(model)
    tensorboard_callback.writer.flush()
    
                    
                  

pb模型文件

  • 生成tensorboard文件

                    
                      file_writer = tf.summary.FileWriter('./pb')
    file_writer.add_graph(graph)
    file_writer.flush()
    
                    
                  

然后輸入命令行 tensorboard --logdir=./ 查看tensorboard模型圖

查看已保存模型的輸入和輸出

通過tensorboard圖查看

在網頁中點擊圖的輸入和輸入即可看到輸入和輸出的詳細屬性。 注意:如果輸出是矩形框,說明它是組合操作,要雙擊進入到它的內部,找到最后的橢圓形才是模型可識別的tensor

tensorflow模型部署系列————單機python部署(附代碼)_第1張圖片

tensorflow模型部署系列————單機python部署(附代碼)_第2張圖片

最終代碼要在tensor名后加上 :0 上圖中輸入tensor名稱為 input:0 ,輸出tensor名稱為 output/Softmax:0

通過代碼查看

通過代碼查看所有op名稱

            
              op = graph.get_operations()
for i, m in enumerate(op):
   print('op{}:'.format(i), m.values())

            
          

以上代碼會打印出很多圖,如下格式

            
              op0: (
              
                ,)
op1: (
                
                  ,)
op2: (
                  
                    ,)
op3: (
                    
                      ,)
.
.
.


                    
                  
                
              
            
          

op的打印順序大致以 以下順序排列:

  • 前向傳播op
  • 占位符op
  • 優化器op
  • 評估指標(loss、acc)op
  • 反向傳播梯度op

我們查找輸入輸出op時只要在前向傳播op里面尋找就行了。一般來說,打印的第一個op是輸入op,前向傳播op的最后一個op為輸出op。當然,我們也可以根據需要用中間一些op做為輸入和輸出,這在提取特征和遷移學習場景會用到

以第一行為例。 'sequential_1_input:0' 為張量名稱, float32 為張量類型, (?, 784) 為張量維度

python部署代碼

模型封裝類

模型封裝類主要包括兩個方法:初始化和推理。

初始化只用于處理與 sess.run 無關的所有操作,以減少推理時的操作,保證模型推理高效運行。初始化主要進行的操作包括:模型文件加載、獲取計算圖和計算session、根據輸入輸出tensor名稱獲取輸入輸出tensor

推理僅僅執行 sesson.run 操作

模型封裝類示例代碼

經過模型封裝類封裝以后,示例代碼就很簡單了。只用準備數據,然后推理就行了。

示例代碼

  • 模型文件分析

    • keras模型文件分析代碼

    • pb模型文件分析代碼

  • python部署

    • 模型封裝類
    • 模型封裝類示例代碼

附錄

參考


  • tensorflow 官方 tensorboard教程
  • keras官方model接口文檔中文版

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久久久成人精品免费播放动漫 | 视频精品久久 | 五月婷婷激情 | 色婷婷久久久亚洲一区二区三区 | 91九色porn偷拍在线 | 91一区二区三区 | 亚洲永久 | www.五月婷 | 国产精品欧美精品 | 成人欧美在线观看 | 久久久精品在线观看 | 2021国产精品自拍 | 色视频网站在线观看 | 东京久久| 婷婷国产精品 | 中文字幕在线免费观看 | 天堂久久久久久中文字幕 | 亚洲欧美日本人成在线观看 | 乳欲人妻办公室奶水在线电影国产 | 成人精品视频在线观看 | 米奇7777狠狠狠狠视频 | 欧美非洲黑人性xxxx | 一个色综合亚洲伊人久久 | 丝袜美腿精品一区二区三 | 亚洲三级视频在线观看 | 大蕉香蕉久久爱 | 日本污污视频在线观看 | 亚洲网站一区 | 欧美free性 | 色屁屁www影院免费观看视频 | 91视频苹果版 | 精品美女在线观看视频在线观看 | 人人99| 97精品超碰一区二区三区 | 免费无遮挡www小视频 | 久久久91精品国产一区二区三区 | 麻豆国产精品 | 91精品国产综合久久福利软件 | 麻豆国产一区二区三区四区 | 男女拍拍拍无挡免费视频 | 欧美电影精品久久久久 |