tf模型保存

stackoverflow  的答案

保存变量:

tf模型保存_第1张图片

保存变量很简单,只需定义saver对象然后调用save函数就可以

结果是生成4个文件:

checkpoint:保存一个目录下所有模型文件列表

t.ckpt.meta:保存网络图结构

t.ckpt.index:?

t.ckpt.data-00000-of-00001:变量文件

注意在实际工程中经常会将global_step也保存进去,这样在读取文件的时候就需要注意了

tf模型保存_第2张图片

读取文件的文件名变成

tf模型保存_第3张图片




复原变量:

tf模型保存_第4张图片

因为meta文件保存了计算图结构,所以在复原的时候也可以直接利用这个文件,这样就不用重复的定义计算图结构了。

下面示范利用meta文件加载计算图

保存文件的时候最后对变量做好命名,这样方便取用


tf模型保存_第5张图片

这样在加载权值的时候,即使不重新定义计算图,只需要知道计算几点的名称,也一样能够得到节点的图结构

tf模型保存_第6张图片

将变量与结构存在一个文件中(.pb文件)

在实际工程中,网络训练好后就只需要跑前向预测就行,那么一些保存变量,初始化的部分就没有用了,但是假如用上面的方法会保存全部的计算图结构。

比如保存一个神经网络的最后一层输出节点 y_score,在运行的时候只需要加载出这个节点的输出张量,就可以直接运行前向预测,而与y_score无关的节点信息将不会被保存

下面介绍一种将变量和结构存在一个文件中的方法

保存成 .pb文件

tf模型保存_第7张图片

这里要注意的是:

保存的节点add_v3会保存节点v1,v2因为需要这些节点运算得出add_v3,但是不会保存mul_v4因为不需要这个节点就能得到add_v3的值

但是假如为保存的节点为 ['mul_v4']的话 add_v3也会被保存,因为需要这个节点的信息才能计算出'mul_v4'节点

读取 .pb文件

tf模型保存_第8张图片

你可能感兴趣的:(tf模型保存)