我们正在 Google Cloud 上建立机器学习管道,利用 GC ML-Engine 进行分布式 TensorFlow 训练和模型服务,并利用 DataFlow 进行分布式预处理作业。
我们希望在 Google Cloud 上将 Apache Beam 应用程序作为 DataFlow 作业运行。查看ML-Engine 示例 ,似乎可以获得tensorflow_transform.beam.impl AnalyzeAndTransformDataset以指定要使用的PipelineRunner,如下所示:
from tensorflow_transform.beam import impl as tft
pipeline_name = "DirectRunner"
p = beam.Pipeline(pipeline_name)
p | "xxx" >> xxx | "yyy" >> yyy | tft.AnalyzeAndTransformDataset(...)
TemplatingDataflowPipelineRunner提供了将我们的预处理开发与参数化操作分开的能力 - 请参见此处:https ://cloud.google.com/dataflow/docs/templates/overview - 基本上:
- A)在PipelineOptions派生类型中,将选项类型更改为ValueProvider(python 方式:类型推断或类型提示???)
- B) 将 runner 更改为TemplatingDataflowPipelineRunner
- C) mvn archetype:generate to store template in GCS (python way: a yaml file like TF Hypertune ???)
- D) gcloud beta 数据流作业运行 --gcs-location --parameters
问题是:你能告诉我我们如何使用tf.Transform来利用TemplatingDataflowPipelineRunner吗?