set_distribution
函式keras.distribution.set_distribution(value)
將分佈設定為全域分佈設定。
引數
Distribution
實例。distribution
函式keras.distribution.distribution()
從全域環境中檢索目前的分佈。
list_devices
函式keras.distribution.list_devices(device_type=None)
根據裝置類型傳回所有可用的裝置。
注意:在分散式設定中,會傳回全域裝置。
引數
"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 將正確地轉發它們。
引數
None
,後端將使用 TPU 環境變數找出它。您也可以透過環境變數 KERAS_DISTRIBUTION_JOB_ADDRESSES
配置此值。None
,後端將使用 TPU 環境變數找出它。您也可以透過環境變數 KERAS_DISTRIBUTION_NUM_PROCESSES
配置此值。0
到 num_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)
keras.distribute.initialize(
job_addresses="10.0.0.1:1234,10.0.0.2:2345",
num_processes=2,
process_id=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"] = "0"
keras.distribute.initialize()
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
。