1

私たちは分散型TensorFlowトレーニングとモデル提供にGC ML-Engineを、分散型前処理ジョブにDataFlowを活用して、Google Cloud上でMachine Learningパイプラインを確立しています。tf.TransformでGoogle DataFlowランナーとテンプレートを使用するには?

私たちはApache BeamアプリケーションをGoogle CloudのDataFlowジョブとして実行したいと考えています。 ML-Engine samples を見て、次のように使用するPipelineRunnerを指定するtensorflow_transform.beam.impl AnalyzeAndTransformDatasetを取得することが表示されます。

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 - 基本的には:デPipelineOptions

  • A) rived種類、変更オプションの種類ValueProviderに(Pythonの方法:型推論やタイプヒント???)
  • B)の変化ランナーにTemplatingDataflowPipelineRunner
  • C)MVN原型:GCSにテンプレートを保存するためにを生成(Pythonの道:TFのHyperTuneのようなYAMLファイル???)
  • D)のgcloudベータデータフロージョブは--gcs-位置-parameters

を実行する質問です:ヨーヨー缶私たちは私たちがどのように使用できるかを教えてくださいtf.Transformを活用するにはTemplatingDataflowPipelineRunner

答えて

6

Pythonテンプレートは、2017年4月現在で利用可能です(documentation参照)。それらを操作する方法は次のとおりです。

  • 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の1.Xに何が起こったのかとは違って)ないJava 2.X。 javaのを見ると

+0

** TemplatingDataflowPipelineRunnerクラス**(https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/runners/ TemplatingDataflowPipelineRunner。java)、** DataflowPipelineRunnerをカプセル化** - Apache Beam Python APIをカプセル化したカスタムPythonランナーを作成するのはどれほど難しいでしょうか?** class DataflowRunner(PipelineRunner)**(https://beam.apache.org /documentation/sdks/pydoc/0.6.0/_modules/apache_beam/runners/dataflow/dataflow_runner.html#DataflowRunner)? –

+0

TemplatingDataflowPipelineRunnerはBeamの一部でもありません。 Dataflowのお客様にとっては、Javaでテンプレートを作成する方法は、1.xのランナーを選択するか、2.xのtemplateLocationを渡すことです。 Pythonの場合は、template_locationを渡します。テンプレートの詳細については、https://cloud.google.com/dataflow/docs/templates/overviewをご覧ください。現在ベータ版である2.0がリリースされるまで、ドキュメントは1.xに関係することに注意してください。 –

1

残念ながら、Pythonパイプラインはテンプレートとして使用できません。 Java todayでのみ使用できます。あなたはPythonライブラリを使う必要があるので、これを実行することは不可能です。

tensorflow_transformもValueProviderをサポートする必要があり、オプションを値プロバイダ型として渡すことができます。

関連する問題