1、TensorFlow 模型保存/载入的两种方法
https://blog.csdn.net/thriving_fcl/article/details/71423039
【讲解清晰,2种方法都有缺陷,最好的方法是 saved_model 模块保存/载入模型
】
a. 使用saver.save() 保存, saver.restore()方法载入:
这种方法不方便的在于,在使用模型的时候,必须把模型的结构重新定义一遍,然后载入对应名字的变量的值。但是很多时候我们都更希望能够读取一个文件然后就直接使用模型,而不是还要把模型重新定义一遍。所以就需要使用另一种方法。
b. tf.train.import_meta_graph:
这个方法可以从文件中将保存的graph的所有节点加载到当前的default graph中,并返回一个saver。也就是说,我们在保存的时候,除了将变量的值保存下来,其实还有将对应graph中的各种节点保存下来,所以模型的结构也同样被保存下来了。
比如我们想要保存计算最后预测结果的y
,则应该在训练阶段将它添加到collection中。
相比第一种,不需要重新定义模型,但是为了从graph中找到输入输出的tensor,还是得用graph.get_tensor_by_name()来获取,也就是还需要知道在定义模型阶段所赋予这些tensor的名字。如果创建各模型的代码都是同一个人完成的,还相对好控制,强制这些输入输出的命名都一致即可。如果是不同的开发者,要在创建模型阶段就强制tensor的命名一致就比较困难了。这样就不得不再维护一个配置文件,将需要获取的tensor名称写入,然后从配置文件中读取该参数。
2、TensorFlow saved_model 模块:https://blog.csdn.net/thriving_fcl/article/details/75213361 【讲解清晰】
3、tensorflow数据结构-SignatureDef
https://blog.csdn.net/qq_39124762/article/details/83857353
https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/signature_defs.md (官方文档)
4、tensorflowServing部署
https://www.cnblogs.com/weizhen/p/9809179.html
5、完整解析部署(有用,过程详细)
https://blog.csdn.net/u010159842/article/details/88406379
记录:tf.saved_model 模块的简单使用(TensorFlow 模型存储与恢复)
https://www.cnblogs.com/mbcbyq-2137/p/10044837.html 【实际的完整简单例子】