當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.distribute.cluster_resolver.TPUClusterResolver用法及代碼示例


適用於 Google Cloud TPU 的集群解析器。

繼承自:ClusterResolver

用法

tf.distribute.cluster_resolver.TPUClusterResolver(
    tpu=None, zone=None, project=None, job_name='worker',
    coordinator_name=None, coordinator_address=None,
    credentials='default', service=None, discovery_url=None
)

參數

  • tpu 與要使用的 TPU 對應的字符串。它可以是 TPU 名稱或 TPU worker gRPC 地址。如果未設置,它將嘗試自動解析 Cloud TPU 上的 TPU 地址。如果設置為"local",它將假定 TPU 直接連接到 VM,而不是通過網絡連接。
  • zone TPU 所在的區域。如果省略或為空,我們將假設 TPU 的區域與 GCE 虛擬機的區域相同,我們將嘗試從 GCE 元數據服務中發現。
  • project 包含 Cloud TPU 的 GCP 項目的名稱。如果省略或為空,我們將嘗試從 GCE 元數據服務中發現 GCE VM 的項目名稱。
  • job_name TPU 所屬的 TensorFlow 作業的名稱。
  • coordinator_name 用於協調器的名稱。如果協調器不應包含在計算的 ClusterSpec 中,則設置為 None。
  • coordinator_address 協調器的地址(通常是 ip:port 對)。如果設置為 None,將啟動 TF 服務器。如果coordinator_name 為None,即使coordinator_address 為None,也不會啟動TF 服務器。
  • credentials GCE 證書。如果沒有,那麽我們使用來自 oauth2client 的默認憑據
  • service googleapiclient.discovery 函數返回的 GCE API 對象。如果您指定自定義服務對象,則憑據參數將被忽略。
  • discovery_url 指向發現服務位置的 URL 模板。它應該有兩個參數 {api} 和 {apiVersion} 在填寫時會生成該服務的發現文檔的絕對 URL。環境變量'TPU_API_DISCOVERY_URL' 將覆蓋它。

拋出

  • ImportError 如果未安裝 googleapiclient。
  • ValueError 如果沒有指定 TPU。
  • RuntimeError 如果指定了一個空的 TPU 名稱並且它在 Google Cloud 環境中運行。

屬性

  • environment 返回 TensorFlow 運行的當前環境。
  • task_id 返回此任務 IDClusterResolver表示。

    在 TensorFlow 分布式環境中,每個作業可能有一個適用的任務 id,它是實例在其任務類型中的索引。當用戶需要根據任務索引運行特定代碼時,這很有用。例如,

    cluster_spec = tf.train.ClusterSpec({
        "ps":["localhost:2222", "localhost:2223"],
        "worker":["localhost:2224", "localhost:2225", "localhost:2226"]
    })
    
    # SimpleClusterResolver is used here for illustration; other cluster
    # resolvers may be used for other source of task type/id.
    simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
                                            task_id=0)
    
    ...
    
    if cluster_resolver.task_type == 'worker' and cluster_resolver.task_id == 0:
      # Perform something that's only applicable on 'worker' type, id 0. This
      # block will run on this particular instance since we've specified this
      # task to be a 'worker', id 0 in above cluster resolver.
    else:
      # Perform something that's only applicable on other ids. This block will
      # not run on this particular instance.

    如果此類信息不可用或不適用於當前分布式環境(例如使用 tf.distribute.cluster_resolver.TPUClusterResolver 進行訓練),則返回 None

    有關詳細信息,請參閱 tf.distribute.cluster_resolver.ClusterResolver 的類文檔字符串。

  • task_type 返回此任務類型ClusterResolver表示。

    在 TensorFlow 分布式環境中,每個作業都可能有一個適用的任務類型。 TensorFlow 中的有效任務類型包括 'chief':被指定承擔更多責任的工作人員、'worker':用於訓練/評估的常規工作人員、'ps':參數服務器或 'evaluator':評估檢查點的評估程序用於指標。

    有關最常用的'chief' 和'worker' 任務類型的更多信息,請參閱Multi-worker 配置。

    當用戶需要根據任務類型運行特定代碼時,訪問此類信息非常有用。例如,

    cluster_spec = tf.train.ClusterSpec({
        "ps":["localhost:2222", "localhost:2223"],
        "worker":["localhost:2224", "localhost:2225", "localhost:2226"]
    })
    
    # SimpleClusterResolver is used here for illustration; other cluster
    # resolvers may be used for other source of task type/id.
    simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
                                            task_id=1)
    
    ...
    
    if cluster_resolver.task_type == 'worker':
      # Perform something that's only applicable on workers. This block
      # will run on this particular instance since we've specified this task to
      # be a worker in above cluster resolver.
    elif cluster_resolver.task_type == 'ps':
      # Perform something that's only applicable on parameter servers. This
      # block will not run on this particular instance.

    如果此類信息不可用或不適用於當前分布式環境(例如使用 tf.distribute.experimental.TPUStrategy 進行訓練),則返回 None

    有關詳細信息,請參閱 tf.distribute.cluster_resolver.ClusterResolver 的課程文檔。

這是 Google Cloud TPU 服務的集群解析器的實現。

TPUClusterResolver 支持以下不同的環境: Google Compute Engine Google Kubernetes Engine Google internal

它可以傳遞到tf.distribute.TPUStrategy 以支持在 Cloud TPU 上進行 TF2 訓練。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.distribute.cluster_resolver.TPUClusterResolver。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。