我有一个简单的pb文件,没有任何ckpt文件。我想(随机)初始化pb文件的所有权重,并将初始化后的权重另存为ckpt文件。我找不到任何办法。全局变量初始值设定项只是不保存任何变量
答案 0 :(得分:1)
可以通过三种方式将模型保存在.pb format
中。使用tf.saved_model.simple_save
,tf.saved_model.Builder.save
或estimator.export_savedmodel
。
要回答您的问题,您可以使用功能.pb model
恢复tf.saved_model.loader.load(sess,[tag_constants.TRAINING],Export_Dir)
。
然后,您可以使用以下代码恢复权重(您应该记住与Weights Tensor
对应的名称):
with graph2.as_default():
with tf.Session(graph=graph2) as sess:
# Restore saved values
print('\nRestoring...')
tf.saved_model.loader.load(sess,[tag_constants.SERVING],path)
#Specify the correct `Weights_Tensor_Name`
Weights_Var = graph2.get_tensor_by_name('Weights_Tensor_Name:0')
之后,您可以使用以下代码将权重保存到.checkpoint文件:
saver = tf.train.Saver({"Weights_Var": Weights_Var})
但是,如果您只想将Random Tensor
(名称为Weights
)保存到Check Points文件中,则可以使用函数tf.random.uniform
生成一个随机张量,然后将其保存使用以下代码:
saver = tf.train.Saver({"Weights_Var": Weights_Var})