Por padrão, a API run
se encarrega de agrupar o código do modelo em uma estratégia de distribuição do TensorFlow com base na configuração de cluster que você forneceu.
Sem distribuição
Configuração principal da CPU e sem trabalhadores adicionais
tfc.run(entry_point='mnist_example.py',
chief_config=tfc.COMMON_MACHINE_CONFIGS['CPU'])
OneDeviceStrategy
1 GPU no chefe (o padrão é AcceleratorType.NVIDIA_TESLA_T4
) e nenhum trabalhador adicional.
tfc.run(entry_point='mnist_example.py')
MirroredStrategy
Configuração principal com múltiplas GPUs ( AcceleratorType.NVIDIA_TESLA_V100
).
tfc.run(entry_point='mnist_example.py',
chief_config=tfc.COMMON_MACHINE_CONFIGS['V100_4X'])
MultiWorkerMirroredStrategy
Configuração principal com 1 GPU e 2 trabalhadores cada um com 8 GPUs ( AcceleratorType.NVIDIA_TESLA_V100
).
tfc.run(entry_point='mnist_example.py',
chief_config=tfc.COMMON_MACHINE_CONFIGS['V100_1X'],
worker_count=2,
worker_config=tfc.COMMON_MACHINE_CONFIGS['V100_8X'])
TPUStrategy
Configuração principal com 1 CPU e 1 trabalhador com TPU.
tfc.run(entry_point="mnist_example.py",
chief_config=tfc.COMMON_MACHINE_CONFIGS["CPU"],
worker_count=1,
worker_config=tfc.COMMON_MACHINE_CONFIGS["TPU"])
Observe que TPUStrategy com TensorFlow Cloud funciona apenas com TF versão 2.1, pois esta é a versão mais recente compatível com AI Platform Cloud TPU
Estratégia de distribuição personalizada
Se você quiser especificar uma estratégia de distribuição em seu código de modelo e não quiser run
a API para criar uma estratégia, defina distribution_stategy
como None
. Isso será necessário, por exemplo, quando você estiver usando strategy.experimental_distribute_dataset
.
tfc.run(entry_point='mnist_example.py',
distribution_strategy=None,
worker_count=2)