tensorflow持续化数据格式(1)

1、保存查看持久化数据

import tensorflow as tf
# 如果你使用的是CPU版的tensorflow可以将with tf.device('/gpu:0'):去掉
with tf.device('/gpu:0'):
    V1 = tf.Variable(tf.constant(1.0, shape=[1]), name='V1')
    V2 = tf.Variable(tf.constant(2.0, shape=[1]), name='V2')
    result = V1 + V2
init_op = tf.global_variables_initializer()
# 保存模型
saver = tf.train.Saver()
# 将.meta文件转换成.JSON文件方便我们观察MetaGraphDef的内容
saver.export_meta_graph(r'E:\ZC\procedure\tensorflow_gpu\model\model.ckpt.meda.json', as_text=True)

metaGraphDef结构

meta_info_def中存的是元数据、运算的信息
    一、1、stripped_op_list:运算的信息
stripped_info_def的一部分
name表示运算的名字;input_arg表示这个运算的输入,output_arg表示这个运算的输出;allowed_values表示使用的数据类型。上图的op表示这是一个加法运算有两个输入一个输出,使用的类型有float,int16等等。
    2、tensorflow_version:他表示你当前使用的tensorflow的版本
    3、tensorflow_git_version:他表示你当前使用的git的版本
    二、graph_def:节点之间的联系,也就是图的信息,里面只包含node信息
node信息
1、name表示当前节点的名字,也就是tf.Variable(tf.constant(1.0, shape=[1]), name=‘V1’)中name中的值(你自己定义的方便可视化用的,不指定的话系统自动给他一个名字)
2、op:记录这个节点的具体信息,这个信息放在stripped_info_list中
op的详细信息
3、device表示tensorflow在什么设备上运行,我的是在GPU上运行的并且指定了在0号CPU上运行。
4、shape:记录这个节点的张量大小.
三、saver_def记录保存模型的信息:
saver_def
filename_tensor_name表示保存文件名的张量名称,因为是save/Const的第一个输出所以为0
save_tensor_name:表示持久化tensorflow模型的运算所对应的节点名称 ,加载的时候要用。
max_to_keep:表示最多保存最近的5个模型。
keep_checkpoint_every_n_hours:表示多少小时后增加一个模型
四、collection_def:记录集合信息
collect_def
key:表示这是个什么样的集合,上图表示这个是一个可训练的集合。
value里面有

  • bytes_list(维护张量集合)
  • int64_list(维护整形集合)
  • float_list(维护实数集合)
    上图中的bytes_list中的value表示:需要维护的变量名称(由系统自己维护)
    所有详细信息在我上传的文件中。
发布了49 篇原创文章 · 获赞 18 · 访问量 1410

猜你喜欢

转载自blog.csdn.net/qq_44099721/article/details/103792257
今日推荐