airflow.providers.google.cloud.hooks.mlengine

此模組包含 Google ML Engine Hook。

模組內容

類別

MLEngineHook

Google ML Engine API 的 Hook。

MLEngineAsyncHook

用於取得 MLEngine 非同步 Hook 的類別。

屬性

log

airflow.providers.google.cloud.hooks.mlengine.log[source]
class airflow.providers.google.cloud.hooks.mlengine.MLEngineHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]

基底: airflow.providers.google.common.hooks.base_google.GoogleBaseHook

Google ML Engine API 的 Hook。

hook 中所有使用 project_id 的方法都必須使用關鍵字引數而非位置引數呼叫。

get_conn()[source]

擷取與 MLEngine 的連線。

返回:

Google MLEngine 服務物件。

返回類型

googleapiclient.discovery.Resource

create_job(job, project_id, use_existing_job_fn=None)[source]

啟動 MLEngine 工作並等待其達到終端狀態。

參數:
  • project_id (str) – 將在其中啟動 MLEngine 工作的 Google Cloud 專案 ID。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。

  • job (dict) –

    應該提供給 MLEngine API 的 MLEngine Job 物件,例如

    {
      'jobId': 'my_job_id',
      'trainingInput': {
        'scaleTier': 'STANDARD_1',
        ...
      }
    }
    

  • use_existing_job_fn (Callable | None) – 如果已存在具有相同 job_id 的 MLEngine 工作,則此方法(如果提供)將決定是否應使用此現有工作,繼續等待其完成並傳回工作物件。它應接受 MLEngine 工作物件,並傳回布林值,指示是否可以重複使用現有工作。如果未提供 'use_existing_job_fn',我們預設會重複使用現有的 MLEngine 工作。

返回:

MLEngine 工作物件(如果工作成功達到終端狀態,可能是 FAILED 或 CANCELLED 狀態)。

返回類型

dict

create_job_without_waiting_result(body, project_id)[source]

啟動 MLEngine 工作並等待其達到終端狀態。

參數:
  • project_id (str) – 將在其中啟動 MLEngine 工作的 Google Cloud 專案 ID。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。

  • body (dict) –

    應該提供給 MLEngine API 的 MLEngine Job 物件,例如

    {
      'jobId': 'my_job_id',
      'trainingInput': {
        'scaleTier': 'STANDARD_1',
        ...
      }
    }
    

返回:

MLEngine job_id 物件(如果工作成功達到終端狀態,可能是 FAILED 或 CANCELLED 狀態)。

cancel_job(job_id, project_id)[source]

取消 MLEngine 工作。

參數:
  • project_id (str) – 將在其中取消 MLEngine 工作的 Google Cloud 專案 ID。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。

  • job_id (str) – 要取消的 Google MLEngine 訓練工作的唯一 ID。

返回:

如果成功取消,則為空字典

引發:

googleapiclient.errors.HttpError

返回類型

dict

get_job(project_id, job_id)[source]

根據工作 ID 取得 MLEngine 工作。

參數:
  • project_id (str) – 工作所在的專案。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

  • job_id (str) – Google MLEngine 工作的唯一 ID。(已套用範本)

返回:

如果成功,則為 MLEngine 工作物件。

引發:

googleapiclient.errors.HttpError

返回類型

dict

create_version(model_name, version_spec, project_id)[source]

在 Google Cloud ML Engine 上建立版本。

參數:
  • version_spec (dict) – 包含版本相關資訊的字典。(已套用範本)

  • model_name (str) – 版本所屬的 Google Cloud ML Engine 模型名稱。(已套用範本)

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

返回:

如果版本建立成功,則傳回操作。否則會引發錯誤。

返回類型

dict

set_default_version(model_name, version_name, project_id)[source]

將版本設定為預設版本。封鎖直到完成。

參數:
  • model_name (str) – 版本所屬的 Google Cloud ML Engine 模型名稱。(已套用範本)

  • version_name (str) – 要操作的版本名稱。(已套用範本)

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

返回:

如果成功,則傳回 Version 的執行個體。否則會引發錯誤。

引發:

googleapiclient.errors.HttpError

返回類型

dict

list_versions(model_name, project_id)[source]

列出模型的所有可用版本。封鎖直到完成。

參數:
  • model_name (str) – 版本所屬的 Google Cloud ML Engine 模型名稱。(已套用範本)

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

返回:

傳回 Version 執行個體的清單。

引發:

googleapiclient.errors.HttpError

返回類型

list[dict]

delete_version(model_name, version_name, project_id)[source]

刪除模型的指定版本。封鎖直到完成。

參數:
  • model_name (str) – 版本所屬的 Google Cloud ML Engine 模型名稱。(已套用範本)

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。

  • version_name (str) – 要操作的版本名稱。(已套用範本)

返回:

如果版本刪除成功,則傳回操作。否則會引發錯誤。

返回類型

dict

create_model(model, project_id)[source]

建立模型。封鎖直到完成。

參數:
  • model (dict) – 包含模型相關資訊的字典。

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

返回:

如果版本建立成功,則傳回 Model 的執行個體。否則會引發錯誤。

引發:

googleapiclient.errors.HttpError

返回類型

dict

get_model(model_name, project_id)[source]

取得模型。封鎖直到完成。

參數:
  • model_name (str) – 模型名稱。

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

返回:

如果模型存在,則傳回 Model 的執行個體。否則傳回 None。

引發:

googleapiclient.errors.HttpError

返回類型

dict | None

delete_model(model_name, project_id, delete_contents=False)[source]

刪除模型。封鎖直到完成。

參數:
  • model_name (str) – 模型名稱。

  • delete_contents (bool) – 是否強制刪除,即使模型不是空的。如果設定為 True,將刪除資料集中的所有版本(如果有的話)。預設值為 False。

  • project_id (str) – MLEngine 模型所屬的 Google Cloud 專案名稱。如果設定為 None 或遺失,則會使用 Google Cloud 連線中的預設 project_id。(已套用範本)

引發:

googleapiclient.errors.HttpError

class airflow.providers.google.cloud.hooks.mlengine.MLEngineAsyncHook(**kwargs)[source]

基底: airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook

用於取得 MLEngine 非同步 Hook 的類別。

sync_hook_class[source]
scopes = ['https://www.googleapis.com/auth/cloud-platform'][source]
async get_job(job_id, session, project_id=PROVIDE_PROJECT_ID)[source]

依工作 ID 和專案 ID 取得指定的 Job 資源。

async get_job_status(job_id, project_id=PROVIDE_PROJECT_ID)[source]

使用 gcloud-aio 非同步輪詢工作狀態。

請注意,當 Job 結果仍在擱置時,會引發 OSError。例外狀況表示 Job 完成時發生錯誤

此條目是否有幫助?