最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法

 更新時(shí)間:2020年04月22日 10:57:30   作者:yjl9122  
這篇文章主要介紹了tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法,需要的朋友可以參考下

廢話少說(shuō)直接上代碼樣例如下

import tensorflow as tf
import os
from tensorflow.python.tools import freeze_graph
# 本來(lái)這個(gè)model本無(wú)需解釋太多,但是這么多人不能耐下心來(lái)看,那么我簡(jiǎn)單的說(shuō)一下吧
# network是你們自己定義的模型結(jié)構(gòu)而已
# ps:
# def network(input):
# return tf.layers.max_pooling2d(input, 2, 2)
from model import network


os.environ['CUDA_VISIBLE_DEVICES']='2' #設(shè)置GPU


model_path = "path to /model.ckpt-0000" #設(shè)置model的路徑,因新版tensorflow會(huì)生成三個(gè)文件,只需寫(xiě)到數(shù)字前


def main():

 tf.reset_default_graph()

 input_node = tf.placeholder(tf.float32, shape=(228, 304, 3)) #這個(gè)是你送入網(wǎng)絡(luò)的圖片大小,如果你是其他的大小自行修改
 input_node = tf.expand_dims(input_node, 0)
 flow = network(input_node)
 flow = tf.cast(flow, tf.uint8, 'out') #設(shè)置輸出類型以及輸出的接口名字,為了之后的調(diào)用pb的時(shí)候使用

 saver = tf.train.Saver()
 with tf.Session() as sess:

  saver.restore(sess, model_path)

  #保存圖
  tf.train.write_graph(sess.graph_def, 'output_model/pb_model', 'model.pb')
  #把圖和參數(shù)結(jié)構(gòu)一起
  freeze_graph.freeze_graph('output_model/pb_model/model.pb', '', False, model_path, 'out','save/restore_all', 'save/Const:0', 'output_model/pb_model/frozen_model.pb', False, "")

 print("done")

if __name__ == '__main__':
 main()

這節(jié)是關(guān)于tensorflow的Freezing,字面意思是冷凍,可理解為整合合并;整合什么呢,就是將模型文件和權(quán)重文件整合合并為一個(gè)文件,主要用途是便于發(fā)布。

官方解釋可參考:https://www.tensorflow.org/extend/tool_developers/#freezing 

這里我按我的理解翻譯下,不對(duì)的地方請(qǐng)指正:
有一點(diǎn)令我們?yōu)楸容^困惑的是,tensorflow在訓(xùn)練過(guò)程中,通常不會(huì)將權(quán)重?cái)?shù)據(jù)保存的格式文件里(這里我理解是模型文件),反而是分開(kāi)保存在一個(gè)叫checkpoint的檢查點(diǎn)文件里,當(dāng)初始化時(shí),再通過(guò)模型文件里的變量Op節(jié)點(diǎn)來(lái)從checkoupoint文件讀取數(shù)據(jù)并初始化變量。這種模型和權(quán)重?cái)?shù)據(jù)分開(kāi)保存的情況,使得發(fā)布產(chǎn)品時(shí)不是那么方便,所以便有了freeze_graph.py腳本文件用來(lái)將這兩文件整合合并成一個(gè)文件。
freeze_graph.py是怎么做的呢?首行它先加載模型文件,再?gòu)腸heckpoint文件讀取權(quán)重?cái)?shù)據(jù)初始化到模型里的權(quán)重變量,再將權(quán)重變量轉(zhuǎn)換成權(quán)重 常量 (因?yàn)?常量 能隨模型一起保存在同一個(gè)文件里),然后再通過(guò)指定的輸出節(jié)點(diǎn)將沒(méi)用于輸出推理的Op節(jié)點(diǎn)從圖中剝離掉,再重新保存到指定的文件里(用write_graphdef或Saver)

文件目錄:tensorflow/python/tools/free_graph.py
測(cè)試文件:tensorflow/python/tools/free_graph_test.py 這個(gè)測(cè)試文件很有學(xué)習(xí)價(jià)值

參數(shù):

總共有11個(gè)參數(shù),一個(gè)個(gè)介紹下(必選: 表示必須有值;可選: 表示可以為空):
1、input_graph:(必選)模型文件,可以是二進(jìn)制的pb文件,或文本的meta文件,用input_binary來(lái)指定區(qū)分(見(jiàn)下面說(shuō)明)
2、input_saver:(可選)Saver解析器。保存模型和權(quán)限時(shí),Saver也可以自身序列化保存,以便在加載時(shí)應(yīng)用合適的版本。主要用于版本不兼容時(shí)使用??梢詾榭?,為空時(shí)用當(dāng)前版本的Saver。
3、input_binary:(可選)配合input_graph用,為true時(shí),input_graph為二進(jìn)制,為false時(shí),input_graph為文件。默認(rèn)False
4、input_checkpoint:(必選)檢查點(diǎn)數(shù)據(jù)文件。訓(xùn)練時(shí),給Saver用于保存權(quán)重、偏置等變量值。這時(shí)用于模型恢復(fù)變量值。
5、output_node_names:(必選)輸出節(jié)點(diǎn)的名字,有多個(gè)時(shí)用逗號(hào)分開(kāi)。用于指定輸出節(jié)點(diǎn),將沒(méi)有在輸出線上的其它節(jié)點(diǎn)剔除。
6、restore_op_name:(可選)從模型恢復(fù)節(jié)點(diǎn)的名字。升級(jí)版中已棄用。默認(rèn):save/restore_all
7、filename_tensor_name:(可選)已棄用。默認(rèn):save/Const:0
8、output_graph:(必選)用來(lái)保存整合后的模型輸出文件。
9、clear_devices:(可選),默認(rèn)True。指定是否清除訓(xùn)練時(shí)節(jié)點(diǎn)指定的運(yùn)算設(shè)備(如cpu、gpu、tpu。cpu是默認(rèn))
10、initializer_nodes:(可選)默認(rèn)空。權(quán)限加載后,可通過(guò)此參數(shù)來(lái)指定需要初始化的節(jié)點(diǎn),用逗號(hào)分隔多個(gè)節(jié)點(diǎn)名字。
11、variable_names_blacklist:(可先)默認(rèn)空。變量黑名單,用于指定不用恢復(fù)值的變量,用逗號(hào)分隔多個(gè)變量名字。

用法:

例:python tensorflow/python/tools/free_graph.py \
–input_graph=some_graph_def.pb \ 注意:這里的pb文件是用tf.train.write_graph方法保存的
–input_checkpoint=model.ckpt.1001 \ 注意:這里若是r12以上的版本,只需給.data-00000….前面的文件名,如:model.ckpt.1001.data-00000-of-00001,只需寫(xiě)model.ckpt.1001
–output_graph=/tmp/frozen_graph.pb
–output_node_names=softmax

另外,如果模型文件是.meta格式的,也就是說(shuō)用saver.Save方法和checkpoint一起生成的元模型文件,free_graph.py不適用,但可以改造下:
1、copy free_graph.py為free_graph_meta.py
2、修改free_graph.py,導(dǎo)入meta_graph:from tensorflow.python.framework import meta_graph
3、將91行到97行換成:input_graph_def = meta_graph.read_meta_graph_file(input_graph).graph_def

這樣改即可加載meta文件

到此這篇關(guān)于tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法的文章就介紹到這了,更多相關(guān)tensorflow ckpt轉(zhuǎn)為pb文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python pygame安裝過(guò)程筆記

    詳解Python pygame安裝過(guò)程筆記

    本篇文章主要介紹了詳解Python pygame安裝過(guò)程筆記。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Python實(shí)戰(zhàn)項(xiàng)目之MySQL tkinter pyinstaller實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用MySQL、tkinter、 pyinstaller實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng),大家可以通過(guò)案例查缺補(bǔ)漏,提升水平
    2021-10-10
  • python輸入中文的實(shí)例方法

    python輸入中文的實(shí)例方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python輸入中文的實(shí)例方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-09-09
  • Django 實(shí)現(xiàn)前端圖片壓縮功能的方法

    Django 實(shí)現(xiàn)前端圖片壓縮功能的方法

    今天小編就為大家分享一篇Django 實(shí)現(xiàn)前端圖片壓縮功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python多維數(shù)組切片方法

    python多維數(shù)組切片方法

    下面小編就為大家分享一篇python多維數(shù)組切片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化

    詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化

    本篇文章主要介紹了詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 對(duì)python 矩陣轉(zhuǎn)置transpose的實(shí)例講解

    對(duì)python 矩陣轉(zhuǎn)置transpose的實(shí)例講解

    下面小編就為大家分享一篇對(duì)python 矩陣轉(zhuǎn)置transpose的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python中keyboard的使用之監(jiān)控鍵盤的按鍵輸入

    Python中keyboard的使用之監(jiān)控鍵盤的按鍵輸入

    Python的keyboard模塊是一個(gè)強(qiáng)大的工具,用于監(jiān)聽(tīng)和處理鍵盤事件,該模塊允許程序獲取鍵盤輸入,并執(zhí)行相應(yīng)操作,如監(jiān)聽(tīng)、捕獲熱鍵、模擬鍵位和獲取鍵盤狀態(tài)等,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • python深度總結(jié)線性回歸

    python深度總結(jié)線性回歸

    這篇文章主要介紹了python的深度總結(jié)之線性回歸,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 理想高通濾波實(shí)現(xiàn)Python opencv示例

    理想高通濾波實(shí)現(xiàn)Python opencv示例

    今天小編就為大家分享一篇關(guān)于理想高通濾波實(shí)現(xiàn)Python opencv示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01

最新評(píng)論

抚松县| 阳东县| 油尖旺区| 方正县| 紫金县| 肇庆市| 阳高县| 永年县| 九龙县| 通山县| 东方市| 香格里拉县| 民丰县| 保定市| 绥化市| 康保县| 庄浪县| 若羌县| 图木舒克市| 时尚| 会泽县| 泸溪县| 临高县| 辽阳市| 五台县| 岗巴县| 边坝县| 喀喇沁旗| 满洲里市| 甘孜县| 房山区| 临泉县| 永寿县| 乌兰察布市| 德阳市| 井冈山市| 方山县| 蒙山县| 定陶县| 社旗县| 黎城县|