tf.compat.v1.estimator.tpu.TPUEstimatorSpec
Операции и объекты, возвращаемые из model_fn и переданные в TPUEstimator.
tf.compat.v1.estimator.tpu.TPUEstimatorSpec(
mode,
predictions=None,
loss=None,
train_op=None,
eval_metrics=None,
export_outputs=None,
scaffold_fn=None,
host_call=None,
training_hooks=None,
evaluation_hooks=None,
prediction_hooks=None
)
Переход к TF2
TPU Estimator управляет собственной графой и сессией TensorFlow, поэтому он несовместим с поведением TF2. Мы рекомендуем перейти к новому tf.distribute.TPUStrategy. Подробности см. в руководстве по TPU.
Описание
См. EstimatorSpec для mode, predictions, loss, train_op, и export_outputs.
Для оценки eval_metrics является кортежем metric_fn и tensors, где metric_fn выполняется на процессоре для генерации метрик, а tensors представляет собой Tensor , переданные с системы TPU на хост процессора и переданные в metric_fn. Более точно, оценка TPU ожидает немного другой сигнатуры от tf.estimator.Estimator. В то время как EstimatorSpec.eval_metric_ops ожидает словарь, TPUEstimatorSpec.eval_metrics является кортежем metric_fn и tensors. tensors может быть списком Tensor или словарем имён и Tensor. tensors обычно определяет логиты модели, которые передаются обратно с системы TPU на хост процессора. Все тензоры должны быть в формате batch-major, т.е. размер пакета — это первый размер. После того, как все тензоры станут доступны на хосте процессора со всех фрагментов, они конкатенируются (на процессоре) и передаются в качестве позиционных аргументов в metric_fn , если tensors является списком, или в виде ключевых аргументов, если tensors является словарем. metric_fn принимает tensors и возвращает словарь, где ключ — это строка имени метрики, а значение — результат вызова функции метрики, а именно кортеж (metric_tensor, update_op). См. TPUEstimator для примера MNIST, как указать eval_metrics.
scaffold_fn — это функция, выполняющаяся на процессоре для генерации Scaffold. Эта функция не должна захватывать какие-либо тензоры в model_fn.
host_call — это кортеж function и списка или словаря tensors для передачи этой функции и возвращает список тензоров. host_call в настоящее время работает для train() и evaluate(). Возвращаемые функцией тензоры выполняются на процессоре на каждом шаге, поэтому при передаче тензоров с TPU на процессор возникает накладные расходы. Чтобы уменьшить эти расходы, уменьшите размер тензоров. tensors конкатенируются по главному (пакетному) измерению и поэтому должны иметь ранг >= 1. host_call полезен для записи сводок с помощью tf.contrib.summary.create_file_writer.
| Атрибуты | |
|---|---|
mode | Псевдоним namedtuple для поля с номером 0 |
predictions | Псевдоним namedtuple для поля с номером 1 |
loss | Псевдоним namedtuple для поля с номером 2 |
train_op | Псевдоним namedtuple для поля с номером 3 |
eval_metrics | Псевдоним namedtuple для поля с номером 4 |
export_outputs | Псевдоним namedtuple для поля с номером 5 |
scaffold_fn | Псевдоним namedtuple для поля с номером 6 |
host_call | Псевдоним namedtuple для поля с номером 7 |
training_hooks | Псевдоним namedtuple для поля с номером 8 |
evaluation_hooks | Псевдоним namedtuple для поля с номером 9 |
prediction_hooks | Псевдоним namedtuple для поля с номером 10 |
Методы
as_estimator_spec
as_estimator_spec()
Создаёт эквивалентный EstimatorSpec, используемый для обучения/валидации на процессоре.
© 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/TPUEstimatorSpec