使用Airflow操作员将运行时版本传递给CMLE

时间:2019-02-05 23:37:18

标签: airflow google-cloud-composer

我正在使用MLEngine operator in contrib(无法找到一个没有贡献的对象)。日志中的问题是运行时错误,该错误未正确设置,然后默认为1.0。

  

文件“ /root/.local/lib/python2.7/site-packages/trainer/model.py”,行   210,在train_and_evaluate estimator = tf.estimator.Estimator(model_fn   = image_classifier,AttributeError:“模块”对象没有属性“估算器”

我认为这表明我应该使用TF 1.8,正如触发器中所述:

MLEngineTrainingOperator(
    task_id='ml_engine_training_op1',
    project_id=PROJECT_ID,
    job_id=job_id,
    package_uris=["gs://us-central1-ml-engine-deplo-0bf17ff3-bucket/trainer-0.1.tar.gz"],
    training_python_module=MODULE_NAME,
    training_args=training_args,
    region=REGION,
    scale_tier='BASIC',
    runtime_version = '1.8',
    dag=dag
)

在气流日志中:

  

PendingDeprecationWarning:无效的参数已传递给   MLEngineTrainingOperator。支持传递此类参数   在Airflow 2.0中删除。无效的参数为:   *参数:()   ** kwargs:{'runtime_version':'1.8'}

Cloud Composer运行的气流版本为1.9。

我的问题是使用运算符将​​运行时版本传递给CMLE的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

Airflow v1.9.0中的

MLEngineTrainingOperator不支持runtime_version作为参数。

但是,Airflow v1.10.0中确实存在runtime_version参数。您可以通过在Composer用户界面右上角的Enable Beta Features上使用Composer Beta创建Airflow v.1.10.0。

参考:

Airflow v1.9.0 mlengine_operator.py

Airflow v1.10.0 mlengine_operator.py