https://blog.csdn.net/thriving_fcl/article/details/75213361
在TensorFlow 模型保存/载入的两种方法中总结过。
1. 仅用Saver来保存/载入变量。这个方法显然不行,仅保存变量就必须在inference的时候重新定义Graph(定义模型),这样不同的模型代码肯定要修改。即使同一种模型,参数变化了,也需要在代码中有所体现,至少需要一个配置文件来同步,这样就很繁琐了。
2. 使用tf.train.import_meta_graph导入graph信息并创建Saver, 再使用Saver restore变量。相比第一种,不需要重新定义模型,但是为了从graph中找到输入输出的tensor,还是得用graph.get_tensor_by_name()来获取,也就是还需要知道在定义模型阶段所赋予这些tensor的名字。如果创建各模型的代码都是同一个人完成的,还相对好控制,强制这些输入输出的命名都一致即可。如果是不同的开发者,要在创建模型阶段就强制tensor的命名一致就比较困难了。这样就不得不再维护一个配置文件,将需要获取的tensor名称写入,然后从配置文件中读取该参数。
经过上面的分析发现,要实现inference的代码统一,使用原来的方法也是可以的,只不过TensorFlow官方提供了更好的方法,并且这个方法不仅仅是解决这个问题,所以还是得学习使用saved_model这个模块