gpt4 book ai didi

python - 加载 SavedModel 比加载 tf.train.Saver 检查点慢很多

转载 作者:IT老高 更新时间:2023-10-28 22:09:36 25 4
gpt4 key购买 nike

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

最佳答案

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

  • tf.train.Saver(),保存完整的元图。因此,执行图表中包含的任何操作所需的所有信息都已经存在。 tensorflow 加载模型所需要做的就是将元图插入到默认/当前图中,一切顺利。
  • 另一方面,SavedModelBuilder() 在幕后创建了一个与语言无关的操作和变量表示。这意味着加载方法必须提取所有信息,然后从之前的图表中重新创建所有操作和变量,并将它们插入到默认/当前图表中。

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

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

关于python - 加载 SavedModel 比加载 tf.train.Saver 检查点慢很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44238347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com