Spec-Zone.ru › TensorFlow 2.9

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

Внимание: Этот API был разработан для TensorFlow v1. Продолжайте чтение, чтобы узнать, как мигрировать с этого API на эквивалент в TensorFlow v2. Обратитесь к руководству по миграции TensorFlow v1 в TensorFlow v2 по адресу https://www.tensorflow.org/guide/migrate для получения инструкций по миграции остальной части вашего кода.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API