我想使用保存的TFX管道来使用保存的TFX管道对象生成预测,所以像这样:
model = load_tfx_model("path/to/artifact")
model.predict(new_data)
重要的是,在将输入传递给模型进行推理之前,我想对输入应用预处理管道(类似于sklearn管道)。
看起来BulkInferrer可以生成预测,我也找到了一个REST示例,但我无法弄清楚的是这些选项中的任何一个是否实际上要在新数据上应用TFX变换步骤(preprocessing_fn)。在我看到的preprocessing_fn的例子中,就像这个,响应变量也在转换中被修改,但由于它在预测期间不可用,我怀疑这个函数只用于训练。有人能解释一下吗?
多谢!
BulkInferrer TFX组件对未标记的数据执行批处理推理。它通常部署在Evaluator组件之后,使用已验证的模型执行推理,或者部署在Trainer组件之后,直接对导出的模型执行推理。要了解更多信息,请参考BulkInferrer API。
编辑:
是的,BulkInferrer将对新数据应用preprocessing_fn。Transform组件以tf的形式使用数据。例如,执行特征工程(应用preprocessing_fn)并将SavedModel返回给Trainer组件。BulkInferrer使用来自Trainer组件的训练模型对未标记数据执行批处理推理。
TensorFlow Transform将转换构建到模型的TensorFlow图中,以便在训练和推理时执行相同的转换。因此,preprocessing_fn是SavedModel图的一部分,并将在进行预测之前应用于未标记的数据。