该篇博客记录使用tf.train.Saver在使用不同版本的protobuf来进行持久化模型遇见的不一致问题
复现代码如下所示:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import tensorflow as tf
from tensorflow.core.protobuf import saver_pb2
# Create some variables. v1 = tf.get_variable("v1", shape=[3], initializer = tf.zeros_initializer)
v2 = tf.get_variable("v2", shape=[5], initializer = tf.zeros_initializer)
inc_v1 = v1.assign(v1+1)
dec_v2 = v2.assign(v2-1)
init_op = tf.global_variables_initializer()
saver = tf.train.Saver(write_version=saver_pb2.SaverDef.V1)
# saver = tf.train.Saver(write_version=saver_pb2.SaverDef.V2)
with tf.Session() as sess:
sess.run(init_op)
inc_v1.op.run()
dec_v2.op.run()
save_path = saver.save(sess, "tf_format1/model.ckpt")
print("Model saved in path: %s" % save_path)
当write_version为V1的时候报错,原因是V1版本的不会自己建立文件夹