根据我目前所了解的,有几种不同的方法可以将TensorFlow图形转储到文件中,然后加载到另一个程序中,但我还没有找到清晰的例子/信息说明它们的工作方式。我已经知道的是:
- 使用
tf.train.Saver()
将模型的变量保存到检查点文件(.ckpt)中,并在以后恢复它们(source)。 - 将模型保存到.pb文件中,然后使用
tf.train.write_graph()
和tf.import_graph_def()
将其加载回来(source)。 - 从.pb文件中加载模型,重新训练它,并使用Bazel将其转储到新的.pb文件中(source)。
- 冻结图形以将图形和权重一起保存(source)。
- 使用
as_graph_def()
保存模型,并将权重/变量映射为常量(source)。
然而,我仍然有几个问题需要澄清:
- 关于检查点文件,它们只保存模型的训练权重吗?检查点文件能够被加载到新程序中,并用于运行该模型吗?还是它们仅仅作为在某个时间/阶段保存模型权重的一种方式?
- 关于
tf.train.write_graph()
,权重/变量也会被保存吗?
tf.import_graph_def()
加载吗?as_graph_def()
/.ckpt/.pb之间的区别是什么?简而言之,我正在寻找一种将图形(例如各种操作等)及其权重/变量保存到文件中并加载到另一个程序中供使用(不一定是继续/重新训练)的方法。
关于这个主题的文档并不是很简单明了,因此任何答案/信息都将非常感激。