Keras 3 API 文件 / 多裝置分佈 / 分佈工具程式

分佈工具程式

[原始碼]

set_distribution 函式

keras.distribution.set_distribution(value)

將分佈設定為全域分佈設定。

引數

  • valueDistribution 實例。

[原始碼]

distribution 函式

keras.distribution.distribution()

從全域環境中檢索目前的分佈。


[原始碼]

list_devices 函式

keras.distribution.list_devices(device_type=None)

根據裝置類型傳回所有可用的裝置。

注意:在分散式設定中,會傳回全域裝置。

引數

  • device_type:字串,"cpu""gpu""tpu" 其中之一。如果未提供 device_type,則預設為 "gpu""tpu"(如果可用)。否則將傳回 "cpu" 裝置。

傳回:可用於分佈式運算的裝置清單。


[原始碼]

initialize 函式

keras.distribution.initialize(
    job_addresses=None, num_processes=None, process_id=None
)

初始化多主機/程序設定的分佈系統。

呼叫 initialize 將準備後端以在多主機 GPU 或 TPU 上執行。應在任何運算之前呼叫。

請注意,參數也可以透過環境變數注入,這可以由啟動腳本在啟動時更好地控制。對於某些也依賴環境變數進行配置的後端,Keras 將正確地轉發它們。

引數

  • job_addresses:字串。將形成整個運算叢集的所有工作的逗號分隔 IP 位址。請注意,對於 JAX 後端,只需要工作 0(協調器)的位址。對於某些執行階段(例如 Cloud TPU),此值可以為 None,後端將使用 TPU 環境變數找出它。您也可以透過環境變數 KERAS_DISTRIBUTION_JOB_ADDRESSES 配置此值。
  • num_processes:整數。將形成整個運算叢集的工作/程序數量。對於某些執行階段(例如 Cloud TPU),此值可以為 None,後端將使用 TPU 環境變數找出它。您也可以透過環境變數 KERAS_DISTRIBUTION_NUM_PROCESSES 配置此值。
  • process_id:整數。目前工作/程序的 ID 號碼。值應介於 0num_processes - 1 之間。0 將指示目前的工作/程序是主要/協調工作。您也可以透過環境變數 KERAS_DISTRIBUTION_PROCESS_ID 配置此值。

範例

假設有兩個 GPU 程序,程序 0 在位址 10.0.0.1:1234 上執行,程序 1 在位址 10.0.0.2:2345 上執行。若要設定此叢集,您可以執行 - __ 在程序 0 上__

keras.distribute.initialize(
  job_addresses="10.0.0.1:1234,10.0.0.2:2345",
  num_processes=2,
  process_id=0)
  • __ 在程序 1 上__
keras.distribute.initialize(
  job_addresses="10.0.0.1:1234,10.0.0.2:2345",
  num_processes=2,
  process_id=1)
  • __ 或透過環境變數__
  • 在程序 0 上:
os.environ[
  "KERAS_DISTRIBUTION_JOB_ADDRESSES"] = "10.0.0.1:1234,10.0.0.2:2345"
os.environ["KERAS_DISTRIBUTION_NUM_PROCESSES"] = "2"
os.environ["KERAS_DISTRIBUTION_PROCESS_ID"] = "0"
keras.distribute.initialize()
  • __ 在程序 1 上__
os.environ[
  "KERAS_DISTRIBUTION_JOB_ADDRESSES"] = "10.0.0.1:1234,10.0.0.2:2345"
os.environ["KERAS_DISTRIBUTION_NUM_PROCESSES"] = "2"
os.environ["KERAS_DISTRIBUTION_PROCESS_ID"] = "1"
keras.distribute.initialize()

另請注意,對於 JAX 後端,job_addresses 可以進一步簡化為僅主要/協調器位址,即 - __10.0.0.1__:1234