Tensorflow-持久化模型

持久化模型

通过Saver对象实现save、restore等方法。将运算的结果存储至ckpt.meta文件和从ckpt.meta文件中读取相应的值。这些值是与节点的名称相对应的

tf.train.Saver()对象无参数时是默认导入当前graph中的所有节点。若是指定节点,则向tf.train.Saver()对象传递相应的节点作为参数

从ckpt.meta文件中还原节点对应的值时,因为ckpt.meta文件存储的是值与节点的名称,而且对值进行加载相当于对节点赋予初始化值,还并没有真正的实现初始化。因为存储的实际上是节点的名称和相应的值,而是在一个新的计算图上进行加载,ckpt.meta文件存储的节点名称和值来自与哪个图并不管,反正最终都是要加载到当前调用tf.train.Saver()对象的restore方法实现加载还原的计算图上。又正如之前所述,这里的加载实际上相当于是对当前计算图的节点定义初始值,所以在完成加载的操作有一个前提,就是需要构建当前的计算图。同时,由于ckpt.meta文件中只含有节点的名称和值,所以为了能完成相对应的加载,需要当前的计算图中节点的名称也和ckpt.meta文件中的名称相匹配。如果要完成重命名功能,则需要使用特别的方式,使用{}字典来将ckpt.meta文件中某一个名称的值映射到当前加载ckpt.meta文件的计算图中的某一个新的名称的节点上。

猜你喜欢

转载自blog.csdn.net/weixin_39721347/article/details/86172348
今日推荐