当前位置:  开发笔记 > 人工智能 > 正文

如何在tf.Transform中使用Google DataFlow Runner和Templates?

如何解决《如何在tf.Transform中使用GoogleDataFlowRunner和Templates?》经验,为你挑选了1个好方法。

我们正在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)将跑步者改为TemplatingDataflowPipelineRunner

C) mvn原型:生成以GCS存储模板(python方式:像TF Hypertune一样的yaml文件???)

D)运行gcloud beta数据流作业--gcs-location -parameters

现在的问题是:你能告诉我,我们怎能用tf.Transform利用TemplatingDataflowPipelineRunner



1> María García..:

Python模板于2017年4月开始提供(参见文档).操作它们的方法如下:

定义从PipelineOptions子类化的UserOptions.

使用add_value_provider_argument API添加要参数化的特定参数.

使用argparse的add_argument将继续定义常规的非参数化选项.

class UserOptions(PipelineOptions):
     @classmethod
     def _add_argparse_args(cls, parser):
         parser.add_value_provider_argument('--value_provider_arg', default='some_value')
         parser.add_argument('--non_value_provider_arg', default='some_other_value')

请注意,Python没有TemplatingDataflowPipelineRunner,Java 2.X也不像(Java 1.X中发生的那样).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有