我绝不是Tensorflow的专家,但是如果我不得不猜测为什么会这样,我会说:
- tf.train.Saver(),保存完整的元图。因此,执行图形中包含的任何操作所需的所有信息已经存在。所有的tensorflow加载模型所需要做的就是将元图插入到默认/当前图中,您就可以开始了。
- 另一方面,在后台的SavedModelBuilder()创建了与操作和变量无关的语言表示。这意味着加载方法必须提取所有信息,然后从先前的图重新创建所有操作和变量,然后将它们插入默认/当前图。
根据图形的大小,重新创建其中包含的所有内容可能需要一些时间。
关于第二个问题,如@JH所说,如果没有理由让您使用一种策略而不是另一种策略,并且时间至关重要,那么就选择最快的策略。
0
我从
tf.train.Saver
更改为SavedModel格式,这出人意料地意味着从磁盘加载模型的速度要慢得多(而不是花费数分钟的几秒钟)。为什么会这样,我该怎么做才能更快地加载模型?我曾经这样做:
但是现在我这样做: