加载SavedModel比加载列车保护器检查点

2024-04-25 04:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我从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)

但现在我要做的是:

^{pr2}$

Tags: path模型modelsessionsavetf格式train
2条回答

我绝不是张量流的专家,但如果我不得不猜测为什么会发生这种情况,我会说:

  • 在列车保护器(),保存完整的元图。因此,执行图中包含的任何操作所需的所有信息都已存在。tensorflow要加载模型,只需将元图插入到默认/当前图中,就可以开始了。在
  • 另一方面,在场景后面的SavedModelBuilder()创建了一个与语言无关的操作和变量表示。这意味着加载方法必须提取所有信息,然后从以前的图中重新创建所有操作和变量,并将它们插入到默认/当前图形中。在

根据图形的大小,重新创建它包含的所有内容可能需要一些时间。在

关于第二个问题,正如@J H所说,如果没有理由让你使用一种策略而不是另一种策略,而且时间很重要,那么就用最快的一种策略。在

what can I do to load the model faster?

切换回tf.train.Saver,因为您的问题没有显示使用SavedModelBuilder的动机,并且清楚地表明所用时间对您很重要。或者,复制时间问题的MCVE将允许其他人与您协作分析、诊断和修复任何感知到的性能问题。在

相关问题 更多 >