Python 什么';不同类型的张量流符号函数的目的是什么?

Python 什么';不同类型的张量流符号函数的目的是什么?,python,tensorflow,tensorflow-serving,Python,Tensorflow,Tensorflow Serving,Predict SignatureDef似乎包含了分类和回归SignatureDefs的所有功能。什么时候使用分类或回归SignatureDefs而不仅仅是对所有事物使用预测会有好处?我们希望在生产环境中降低复杂性,如果有可能在所有情况下都使用Predict SignatureDefs,这似乎是一个好主意。从我在文档()中看到的内容来看,“Classify”和“Regression”SigDefs试图为简单情况强制提供一个简单一致的接口(分类和回归),分别为“输入”->“类+分数”和“输入”->

Predict SignatureDef似乎包含了分类和回归SignatureDefs的所有功能。什么时候使用分类或回归SignatureDefs而不仅仅是对所有事物使用预测会有好处?我们希望在生产环境中降低复杂性,如果有可能在所有情况下都使用Predict SignatureDefs,这似乎是一个好主意。

从我在文档()中看到的内容来看,“Classify”和“Regression”SigDefs试图为简单情况强制提供一个简单一致的接口(分类和回归),分别为“输入”->“类+分数”和“输入”->“输出”。似乎还有一个额外的好处,“分类”和“回归”SIGDEF不需要将服务函数构造为模型导出函数的一部分

同样从文档来看,Predict SigDef似乎允许更通用的接口,其优点是能够交换输入和输出模型。从文档来看:

Predict SignatureDefs支持跨模型的可移植性 您可以在不同的SavedModel中交换,可能使用不同的 基本的张量名称(例如,您可能有一个新的 使用张量z:0)的替代模型,而您的客户可以保持在线 连续查询此模型的旧版本和新版本,无需 客户端更改

Predict SignatureDefs还允许您添加可选的附加属性 输出的张量,可以显式地查询 除了下面的输出键之外,您还希望 获取池层以用于调试或其他目的


然而除了不必导出服务函数的小好处之外,文档没有解释为什么不将Predict SigDef用于所有内容,因为它似乎是一个具有大量优势的超集。我希望看到关于这一点的明确答案,以及专用函数的好处(分类、回归)看起来很小。

到目前为止,我看到的差异是

1) 如果在DNNClassifier模型中使用tf.feature\u column.indicator\u列包装tf.feature\u column.categorical\u column\u和(词汇表)*,当您查询时,我遇到了预测API的问题,有时无法根据词汇表文件/列表解析/映射字符串输入。另一方面,分类API将字符串正确地映射到词汇表上的索引(categorical_列),然后映射到一个hot/多个hot(indicator_列),并为查询提供(似乎是)正确的分类响应

2) 分类API的响应格式为[[class,score],[class,score],…],预测API的响应格式为[class[],score[]。如果以后需要以某种方式解析数据,则最好使用其中一种方法

TLDR;由于指示符列包装在带有词汇表的分类列中,我在使用Predict API时遇到了词汇表映射问题。因此,使用分类API