TensorFlow持久化原理及數據格式整理

最近在學習Tensorflow實戰,可以在熟悉的章節上策馬奔騰,但是有些章節就舉步維艱(比如這一節),此篇目的是深入理解此章節。

持久化原理及數據格式整理

當使用save.save()時,TensorFlow程序會自動生成4個文件,這4個文件用來實現TensorFlow模型的持久化:

meta_info_def : 它記錄了TensorFlow計算圖中的元數據以及TensorFlwo程序中所有使用到的運算方法的信息

      graph_def :  主要記錄了TensorFlow計算圖上的節點信息

      saver_def :  記錄了持久化模型時需要用到的一些參數,比如保存到文件的文件名保存操作加載操作的名稱以及保存頻率、                            清理歷史信息等等

collection_def :  屬性是一個從集合名稱到集合內容的映射,其中集合名稱爲字符串,集合內容爲CollectionDef Protocol Buffer

 

 

然後具體操作一波

import tensorflow as tf
from tensorflow.python.framework import graph_util

v1 = tf.Variable(tf.constant(1.0, shape=[1]),name='v1')
v2 = tf.Variable(tf.constant(2.0,shape=[2]),name='v2')
result = v1+v2

init_op = tf.global_variables_initializer()

saver = tf.train.Saver()

with tf.Session() as sess:
    sess.run(init_op)
    saver.export_meta_graph("./model.ckpt.meda.json",as_text=True)

文件夾中粗現了一下文件

使用chrome打開,發現十幾頁的數據.... 先說一下只管感受吧,長度上graph_def>meta_info_def>saver_def=collection_def

奇怪的是colection_def出現了兩次

 

 結論:collection_def每個存的是集合信息,graph_def存的是節點信息, 包含v1/assign, const, v1/read, add, save/const等等節點, 並不僅僅包含圖中所示的3個節點, meta_info_def會存有類似上面的信息,大概T類似於java模板類的一種東西, saver_def主要存有關於save相關的信息。

未完待續

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章