tf.compat.v1.estimator.tpu.TPUConfig
Конфигурация, связанная с TPU, необходимая для TPUEstimator.
tf.compat.v1.estimator.tpu.TPUConfig(
iterations_per_loop=2,
num_shards=None,
num_cores_per_replica=None,
per_host_input_for_training=True,
tpu_job_name=None,
initial_infeed_sleep_secs=None,
input_partition_dims=None,
eval_training_input_configuration=InputPipelineConfig.PER_HOST_V1,
experimental_host_call_every_n_steps=1,
experimental_allow_per_host_v2_parallel_get_next=False,
experimental_feed_hook=None
)
Миграция на TF2
TPU Estimator управляет собственной графой TensorFlow и сессией, поэтому он несовместим с поведением TF2. Мы рекомендуем вам перейти к новому tf.distribute.TPUStrategy. Подробнее см. в руководстве по TPU https://www.tensorflow.org/guide/tpu.
Описание
| Аргументы | |
|---|---|
iterations_per_loop | Это количество шагов обучения, выполняемых в системе TPU, прежде чем возвращаться на хост CPU для каждого Session.run. Это означает, что глобальный шаг увеличивается iterations_per_loop раз за один Session.run. Рекомендуется установить его как количество глобальных шагов для следующей точки сохранения. Обратите внимание, что при оценке не используйте это значение, вместо этого мы выполняем полную оценку steps на TPU для одного Session.run. [Экспериментально]: iterations_per_loop может быть указано как интервал времени. Чтобы указать N секунд в одном Session.run, можно указать Ns и заменить N на количество желаемых секунд. Кроме того, единица времени также может быть указана в минутах или часах, например, 3600s или 60m или 1h. |
num_shards | (Устаревшее, игнорируется TPUEstimator). Количество реплик модели в системе. В случае отсутствия параллелизма моделей это число равно общему количеству ядер TPU. При параллелизме моделей общее количество ядер TPU равно num_cores_per_replica * num_shards. |
num_cores_per_replica | По умолчанию None, что отключает параллелизм моделей. Целое число, описывающее количество ядер TPU на реплику модели. Это необходимо для параллелизма моделей, который позволяет разделить модель на несколько ядер. В настоящее время num_cores_per_replica должен быть 1, 2, 4 или 8. |
per_host_input_for_training | Если True, для PER_HOST_V1, input_fn вызывается один раз на каждом хосте, и количество хостов должно быть меньше или равно количеству реплик. Для PER_HOST_V2 input_fn вызывается один раз для каждого хоста (если количество хостов меньше количества реплик) или реплики (если количество реплик меньше количества хостов). При конфигурации входного потока на ядро train_batch_size вызывается один раз для каждого ядра. С глобальным размером пакета TPUEstimator в конструкторе train_batch_size размер пакета для каждого фрагмента равен True // # хостов в режиме PER_HOST_V1 или PER_HOST_V2. В режиме train_batch_size он равен BROADCAST // # ядер. В режиме input_fn train_batch_size вызывается только один раз на хосте 0, и тензоры транслируются во все остальные реплики. Размер пакета равен train_batch_size. При конфигурации входного потока на ядро размер пакета фрагмента также равен train_batch_size // # ядер. Примечание: per_host_input_for_training==PER_SHARD_V1 поддерживает только режим.TRAIN. |
tpu_job_name | Имя задачи TPU. Как правило, это имя автоматически определяется в TPUEstimator, однако при использовании распространения ClusterSpec в более сложных конфигурациях кластера вам может потребоваться указать имя задачи в виде строки. |
initial_infeed_sleep_secs | Количество секунд, которое поток ввода должен ожидать перед добавлением первой партии. Это помогает избежать временных ограничений для моделей, которые требуют длительного времени компиляции. |
input_partition_dims | Вложенный список для описания размеров разбиения для всех тензоров из input_fn(). Структура input_partition_dims должна соответствовать структуре features и labels из input_fn(). Общее количество фрагментов должно соответствовать num_cores_per_replica. Например, если input_fn() возвращает два тензора: изображения с формой [N, H, W, C] и метки [N]. input_partition_dims = [[1, 2, 2, 1], None] разделит изображения на 4 части и отправит их в 4 ядра TPU. Тензор меток будет напрямую транслироваться во все ядра TPU, так как размер разбиения None. Текущие ограничения: Эта функция поддерживается только в режиме ввода PER_HOST_V2. |
eval_training_input_configuration | Если SLICED, input_fn вызывается только один раз на хосте 0, а тензоры транслируются во все остальные реплики. В отличие от per_host_input_for_training=BROADCAST, каждая реплика получит только часть данных, а не полную копию. Если PER_HOST_V1, поведение определяется per_host_input_for_training. |
experimental_host_call_every_n_steps | В цикле обучения этот параметр задает, как часто выполняются вызовы хоста во время обучения. Вызовы хоста будут оцениваться каждые n шагов в цикле обучения, где n – значение этого параметра. |
experimental_allow_per_host_v2_parallel_get_next | При включении позволяет выполнять вызовы next для набора данных параллельно при использовании ввода PER_HOST_V2. Может привести к увеличению производительности для моделей с коротким временем шага, но в результате TPUEstimator может непредсказуемо распределять партии по разным ядрам вместо обеспечения циклического поведения. |
experimental_feed_hook | Это класс, который пользователь может предоставить оценщику TPU, чтобы переопределить стандартную реализацию TPUInfeedOutfeedSessionHook и добавить настраиваемую реализацию для обработки логики ввода/вывода. Если данный класс равен None, оценщик TPU использует стандартную реализацию TPUInfeedOutfeedSessionHook в tpu_estimator.py. Если не None, оценщик TPU использует этот настраиваемый класс TPU ввода/вывода вместо переопределения стандартного. |
| Исключения | |
|---|---|
ValueError | Если num_cores_per_replica не равно 1, 2, 4, 8, ..., 128. |
| Атрибуты | |
|---|---|
iterations_per_loop | Псевдоним namedtuple для поля с номером 0 |
num_shards | Псевдоним namedtuple для поля с номером 1 |
num_cores_per_replica | Псевдоним namedtuple для поля с номером 2 |
per_host_input_for_training | Псевдоним namedtuple для поля с номером 3 |
tpu_job_name | Псевдоним namedtuple для поля с номером 4 |
initial_infeed_sleep_secs | Псевдоним namedtuple для поля с номером 5 |
input_partition_dims | Псевдоним namedtuple для поля с номером 6 |
eval_training_input_configuration | Псевдоним namedtuple для поля с номером 7 |
experimental_host_call_every_n_steps | Псевдоним namedtuple для поля с номером 8 |
experimental_allow_per_host_v2_parallel_get_next | Псевдоним namedtuple для поля с номером 9 |
experimental_feed_hook | Псевдоним namedtuple для поля с номером 10 |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/compat/v1/estimator/tpu/TPUConfig