【发布时间】:2018-05-21 23:50:43
【问题描述】:
我在张量流中训练了一个大图,并通过以下函数将它们保存在检查点中,
def save_model(sess, saver, param_folder, saved_ckpt):
print("Saving model to disk...")
address = os.path.join(param_folder, 'model')
if not os.path.isdir(address):
os.makedirs(address)
address = os.path.join(address, saved_ckpt)
save_path = saver.save(sess, address)
saver.export_meta_graph(filename=address+'.meta')
print("Model saved in file: %s" % save_path)
现在,为了加载图表,我使用了以下函数。
def load_model(sess, saver, param_folder, saved_ckpt):
print("loding model from disk...")
address = os.path.join(param_folder, 'model')
if not os.path.isdir(address):
os.makedirs(address)
address = os.path.join(address, saved_ckpt)
print("meta graph address :", address)
saver = tf.train.import_meta_graph(address+'.meta')
saver.restore(sess, address)
TensorFlow 的一个很棒的功能是它会自动将保存的权重分配给检查点所需的图。但是,当我想将图形(保存在检查点中的图形)加载到与我保存的图形略有不同/扩展的图形中时,就会出现问题。比如,假设我在上一个图中添加了一个额外的神经网络,并且想要从上一个检查点加载权重,这样我就不必从一开始就训练模型。
简而言之,我的问题是,如何将之前保存的子图加载到更大的(或者你可以说是父图)图中?
【问题讨论】:
-
您可能会发现这个答案很有用:stackoverflow.com/questions/39137597/…
标签: python tensorflow save