我可以扩展Tensorflow Estimator来返回说明值吗? 更改export_saved_model导出的签名仅使用eval_savedmodel?将估算器归类将BoostedTrees模型拉出估算器

我有一个模型,大致遵循文档中为tf.estimator.BoostedTreesClassifier提供的the tutorial。然后,按照Savedmodel文档的SavedModels from Estimators部分中所述,使用tf.Estimator.export_saved_model方法将其导出。这会加载到TensorFlow Serving中并回答gRPC和REST请求。

我现在想将解释因素和所有预测一起包括在内。或者,不太理想的是,作为导出模型上可用的第二个签名。 tf.estimator._BoostedTreesBase.experimental_predict_with_explanations已经实现了适当的算法,如文档的Local Interpretability部分所述。

我认为可以以某种方式“扩展”现有的估算器,使我可以将此方法公开为另一个提供服务的签名。我考虑过几种方法,但到目前为止只尝试了前两种方法:

我尝试过

更改export_saved_model导出的签名

这并没有走太远。公开的签名有些动态,但似乎仅限于tensorflow_core.python.saved_model.model_utils.mode_keys.KerasModeKeys定义的训练,预测或评估选项。

仅使用eval_savedmodel

我短暂地认为Eval可能正是我想要的,并遵循getting started guide中的一些进行TensorFlow模型分析。我走的越远,与Eval模型的主要区别似乎就在于数据的加载方式,而这不是我想要更改的。

将估算器归类

exporting subclassed models还有一些警告。最重要的是,估算器不是模型。这是一个在输入,输出和配置方面具有额外元数据的模型,因此我不清楚子类估计器是否可以像Keras模型一样导出。

我不用编写太多代码就放弃了这种子类化方法。

将BoostedTrees模型拉出估算器

我不够聪明,无法使用低级原语自己安排BoostedTrees模型。 Estimator中进行设置的代码看起来相当复杂。很好地利用这项工作,但是似乎Estimator在model_fn内完成交易,它们根据训练/预测/评估模式而变化,并且尚不清楚与Keras模型的关系是什么

为此我写了一些代码,但很快就放弃了。

下一步是什么?

鉴于上述死胡同,我应该进一步讲哪个角度?

low-level export API和低级模型构建API看起来都可以使我更接近解决方案。设置估算器与使用任一API重新创建估算器之间的差距似乎很大。

是否可以继续使用现有的Estimator,但使用低级导出API创建带有“解释”签名并调用experimental_predict_with_explanations的内容?甚至一步一步就能“预测和解释”?哪个教程会让我走这条路?

nihaozhuzijian 回答:我可以扩展Tensorflow Estimator来返回说明值吗? 更改export_saved_model导出的签名仅使用eval_savedmodel?将估算器归类将BoostedTrees模型拉出估算器

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2966525.html

大家都在问