我从tf.train.Saver
更改为SavedModel格式,这意味着从磁盘加载我的模型要慢得多(而不是几秒钟需要几分钟)。为什么这样做以及如何更快地加载模型?
我曾经这样做过:
# Save model
saver = tf.train.Saver()
save_path = saver.save(session, model_path)
# Load model
saver = tf.train.import_meta_graph(model_path + '.meta')
saver.restore(session, model_path)
但现在我这样做了:
# Save model
builder = tf.saved_model.builder.SavedModelBuilder(model_path)
builder.add_meta_graph_and_variables(session, [tf.saved_model.tag_constants.TRAINING])
builder.save()
# Load model
tf.saved_model.loader.load(session, [tf.saved_model.tag_constants.TRAINING], model_path)
答案 0 :(得分:2)
我绝不是Tensorflow的专家,但如果我不得不猜测为什么会这样,我会说:
根据图表的大小,重新创建其中包含的所有内容可能需要一些时间。
关于第二个问题,正如@J H所说,如果没有理由让你使用一种策略而不是另一种策略,时间至关重要,那么就选择最快的。
答案 1 :(得分:1)
如何更快地加载模型?
切换回tf.train.Saver
,因为您的问题没有显示使用SavedModelBuilder的动机,并明确表示已用时间对您很重要。或者,复制时间问题的MCVE将允许其他人与您合作进行剖析,诊断和修复任何感知到的性能问题。