Spec-Zone.ru › TensorFlow 1.15

tf.estimator.tpu.TPUEstimator

Эстиматор с поддержкой TPU.

Наследуется от: Estimator

Просмотр псевдонимов

Основные псевдонимы

`tf.contrib.tpu.TPUEstimator`

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.estimator.tpu.TPUEstimator

tf.estimator.tpu.TPUEstimator(
    model_fn=None, model_dir=None, config=None, params=None, use_tpu=True,
    train_batch_size=None, eval_batch_size=None, predict_batch_size=None,
    batch_axis=None, eval_on_tpu=True, export_to_tpu=True, export_to_cpu=True,
    warm_start_from=None, embedding_config_spec=None,
    export_saved_model_api_version=ExportSavedModelApiVersion.V1
)

TPUEstimator также поддерживает обучение на CPU и GPU. Вам не нужно определять отдельный tf.estimator.Estimator.

TPUEstimator обрабатывает многие детали работы на устройствах TPU, такие как дублирование входных данных и моделей для каждого ядра и периодическое возвращение на хост для выполнения хуков.

TPUEstimator преобразует глобальный размер пакета в параметрах в размер пакета на фрагмент при вызове input_fn и model_fn. Пользователи должны указать глобальный размер пакета в конструкторе, а затем получить размер пакета для каждого фрагмента в input_fn и model_fn с помощью params['batch_size'].

  • Для обучения model_fn получает размер пакета на ядро; input_fn может получить размер пакета на ядро или на хост в зависимости от per_host_input_for_training в TPUConfig (См. строку документации для TPUConfig для получения подробностей).

  • Для оценки и предсказания model_fn получает размер пакета на ядро, а input_fn получает размер пакета на хост.

Оценка

model_fn должен возвращать TPUEstimatorSpec, которое ожидает eval_metrics для оценки на TPU. Если eval_on_tpu равно False, оценка будет выполняться на CPU или GPU; в этом случае обсуждение оценки на TPU не применимо.

TPUEstimatorSpec.eval_metrics представляет собой кортеж из metric_fn и tensors, где tensors может быть списком любых вложенных структур Tensor (См. TPUEstimatorSpec для получения подробностей). metric_fn принимает tensors и возвращает словарь, где ключ — имя метрики, а значение — результат вызова функции метрики, то есть кортеж (metric_tensor, update_op).

Можно установить use_tpu в False для тестирования. Все обучение, оценка и предсказание будут выполняться на CPU. input_fn и model_fn получат train_batch_size или eval_batch_size без изменений в виде params['batch_size'].

Текущие ограничения:

  1. Оценка на TPU работает только на одном хосте (одном узле TPU), за исключением режима BROADCAST.

  2. input_fn для оценки НЕ должно вызывать исключение конца ввода (OutOfRangeError или StopIteration). И все шаги оценки и все пакеты должны иметь одинаковый размер.

Пример (MNIST):

# The metric Fn which runs on CPU.
def metric_fn(labels, logits):
  predictions = tf.argmax(logits, 1)
  return {
    'accuracy': tf.compat.v1.metrics.precision(
        labels=labels, predictions=predictions),
  }

# Your model Fn which runs on TPU (eval_metrics is list in this example)
def model_fn(features, labels, mode, config, params):
  ...
  logits = ...

  if mode = tf.estimator.ModeKeys.EVAL:
    return tpu_estimator.TPUEstimatorSpec(
        mode=mode,
        loss=loss,
        eval_metrics=(metric_fn, [labels, logits]))

# or specify the eval_metrics tensors as dict.
def model_fn(features, labels, mode, config, params):
  ...
  final_layer_output = ...

  if mode = tf.estimator.ModeKeys.EVAL:
    return tpu_estimator.TPUEstimatorSpec(
        mode=mode,
        loss=loss,
        eval_metrics=(metric_fn, {
            'labels': labels,
            'logits': final_layer_output,
        }))

Предсказание

Предсказание на TPU — экспериментальная функция для поддержки инференции с большими пакетами. Она не предназначена для систем с критическим значением задержки. Кроме того, из-за некоторых проблем с удобством использования для предсказания с небольшим набором данных, CPU .predict, то есть создание нового экземпляра TPUEstimator с use_tpu=False, может быть более удобным.

Примечание: В отличие от обучения/оценки на TPU, input_fn для предсказания должно вызывать исключение конца ввода (OutOfRangeError или StopIteration), которое служит сигналом остановки для TPUEstimator. Точнее, операции, созданные input_fn, производят один пакет данных. API predict() обрабатывает один пакет за раз. При достижении конца источника данных должно быть вызвано исключение конца ввода одной из этих операций. Пользователю обычно не нужно делать этого вручную. Пока набор данных не повторяется бесконечно, API tf.data автоматически вызовет исключение конца ввода после того, как будет создан последний пакет.
Примечание: Estimator.predict возвращает генератор Python. Пожалуйста, обработайте все данные из генератора, чтобы TPUEstimator мог должным образом завершить работу системы TPU для пользователя.

Текущие ограничения:

  1. Предсказание на TPU работает только на одном хосте (одном узле TPU).

  2. input_fn должен возвращать экземпляр Dataset вместо features. Фактически, .train() и .evaluate() также поддерживают Dataset в качестве возвращаемого значения.

Пример (MNIST):

height = 32
width = 32
total_examples = 100

def predict_input_fn(params):
  batch_size = params['batch_size']

  images = tf.random.uniform(
      [total_examples, height, width, 3], minval=-1, maxval=1)

  dataset = tf.data.Dataset.from_tensor_slices(images)
  dataset = dataset.map(lambda images: {'image': images})

  dataset = dataset.batch(batch_size)
  return dataset

def model_fn(features, labels, params, mode):
   # Generate predictions, called 'output', from features['image']

  if mode == tf.estimator.ModeKeys.PREDICT:
    return tf.contrib.tpu.TPUEstimatorSpec(
        mode=mode,
        predictions={
            'predictions': output,
            'is_padding': features['is_padding']
        })

tpu_est = TPUEstimator(
    model_fn=model_fn,
    ...,
    predict_batch_size=16)

# Fully consume the generator so that TPUEstimator can shutdown the TPU
# system.
for item in tpu_est.predict(input_fn=input_fn):
  # Filter out item if the `is_padding` is 1.
  # Process the 'predictions'

Экспорт

export_saved_model экспортирует 2 метаграфа, один с saved_model.SERVING, а другой — с saved_model.SERVING и saved_model.TPU тегами. При работе с сервером, эти теги используются для выбора соответствующего метаграфа для загрузки.

Перед запуском графа на TPU система TPU должна быть инициализирована. Если используется TensorFlow Serving model-server, это происходит автоматически. Если нет, пожалуйста, используйте session.run(tpu.initialize_system()).

Существует две версии API: ExportSavedModelApiVersion.V1 и V2.

В V1 экспортированный CPU граф model_fn как есть. Экспортированный TPU граф обертывает tpu.rewrite() и TPUPartitionedCallOp вокруг model_fn, поэтому model_fn по умолчанию находится на TPU. Чтобы поместить операции на CPU, можно использовать tpu.outside_compilation(host_call, logits).

Пример:

def model_fn(features, labels, mode, config, params):
  ...
  logits = ...
  export_outputs = {
    'logits': export_output_lib.PredictOutput(
      {'logits': logits})
  }

  def host_call(logits):
    class_ids = math_ops.argmax(logits)
    classes = string_ops.as_string(class_ids)
    export_outputs['classes'] =
      export_output_lib.ClassificationOutput(classes=classes)

  tpu.outside_compilation(host_call, logits)

  ...

В V2 export_saved_model() устанавливает флаг params['use_tpu'] чтобы сообщить пользователю, экспортируется ли код на TPU (или нет). Когда params['use_tpu'] имеет значение True, пользователям нужно вызвать tpu.rewrite(), TPUPartitionedCallOp и/или batch_function(). В качестве альтернативы, используйте inference_on_tpu(), что является удобной оберткой для трех функций.

def model_fn(features, labels, mode, config, params):
  ...
  # This could be some pre-processing on CPU like calls to input layer with
  # embedding columns.
  x2 = features['x'] * 2

  def computation(input_tensor):
    return layers.dense(
        input_tensor, 1, kernel_initializer=init_ops.zeros_initializer())

  inputs = [x2]
  if params['use_tpu']:
    predictions = array_ops.identity(
        tpu_estimator.inference_on_tpu(computation, inputs,
        num_batch_threads=1, max_batch_size=2, batch_timeout_micros=100),
        name='predictions')
  else:
    predictions = array_ops.identity(
        computation(*inputs), name='predictions')
  key = signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY
  export_outputs = {
      key: export_lib.PredictOutput({'prediction': predictions})
  }
  ...

СОВЕТ: V2 рекомендуется, так как она более гибкая (например, пакетное выполнение и т.д.).

Аргументы
model_fn Функция модели, как требуется Estimator, которая возвращает EstimatorSpec или TPUEstimatorSpec. training_hooks, 'evaluation_hooks', и prediction_hooks не должны захватывать тензоры TPU внутри функции model_fn.
model_dir Каталог для сохранения параметров модели, графа и т. д. Его также можно использовать для загрузки контрольных точек из каталога в оценщик для продолжения обучения ранее сохраненной модели. Если None, модель_dir в config будет использоваться, если задан. Если оба заданы, они должны быть одинаковыми. Если оба None, будет использован временный каталог.
config Объект конфигурации tpu_config.RunConfig. Не может быть None.
params Необязательный dict гиперпараметров, которые будут переданы в input_fn и model_fn. Ключи — имена параметров, значения — базовые типы Python. Есть зарезервированные ключи для TPUEstimator, включая 'batch_size'.
use_tpu Булево значение, указывающее, включена ли поддержка TPU. В настоящее время — обучение и оценка TPU учитывают этот бит, но eval_on_tpu может переопределить выполнение оценки. Смотрите ниже.
train_batch_size Целое число, представляющее глобальный размер пакета для обучения. TPUEstimator преобразует этот глобальный размер пакета в размер пакета на каждый фрагмент, как params['batch_size'], при вызове input_fn и model_fn. Не может быть None, если use_tpu равно True. Должен быть кратен общему количеству реплик.
eval_batch_size Целое число, представляющее размер пакета для оценки. Должен быть кратен общему количеству реплик.
predict_batch_size Целое число, представляющее размер пакета для прогнозирования. Должен быть кратен общему количеству реплик.
batch_axis Кортеж Python из целых значений, описывающих, как каждый тензор, созданный оценщиком input_fn, должен быть разделен по фрагментам вычислений TPU. Например, если ваша функция input_fn возвращает (images, labels), где тензор images имеет формат HWCN, ваши размерности фрагментов будут [3, 0], где 3 соответствует размерности N вашего тензора images, а 0 соответствует размерности, по которой разделить метки, чтобы они соответствовали соответствующим изображениям. Если передано None, и per_host_input_for_training равно True, пакеты будут разделены по главной размерности. Если tpu_config.per_host_input_for_training равно False или PER_HOST_V2, batch_axis игнорируется.
eval_on_tpu Если False, оценка выполняется на CPU или GPU. В этом случае функция model_fn должна возвращать EstimatorSpec при вызове с mode в качестве EVAL.
export_to_tpu Если True, export_saved_model() экспортирует метаграф для предоставления услуг на TPU. Обратите внимание, что неподдерживаемые режимы экспорта, такие как EVAL, будут проигнорированы. Для этих режимов будет экспортирована только модель CPU. В настоящее время export_to_tpu поддерживает только PREDICT.
export_to_cpu Если True, export_saved_model() экспортирует метаграф для предоставления услуг на CPU.
warm_start_from Необязательный строковый путь к контрольной точке или SavedModel для начальной загрузки, или объект tf.estimator.WarmStartSettings, чтобы полностью настроить начальную загрузку. Если указан строковый путь, а не объект WarmStartSettings, все переменные загружаются с контрольной точки, и предполагается, что словари и имена тензоров не изменены.
embedding_config_spec Необязательный экземпляр EmbeddingConfigSpec для поддержки использования TPU embedding.
export_saved_model_api_version ExportSavedModelApiVersion, V1 или V2. С V1, export_saved_model() добавляет rewrite() и TPUPartitionedCallOp() для пользователя; в версии v2 ожидается, что пользователь добавит rewrite(), TPUPartitionedCallOp() и т. д. в свою модель_fn. Предоставлена вспомогательная функция inference_on_tpu для V2. brn_tpu_estimator.py содержит примеры для обеих версий, т. е. TPUEstimatorExportTest и TPUEstimatorExportV2Test.
Исключения
ValueError params уже имеет зарезервированные ключи.
Атрибуты
config
model_dir
model_fn Возвращает model_fn, привязанный к self.params.
params

Методы

eval_dir

Просмотреть исходный код

eval_dir(
    name=None
)

Отображает имя каталога, куда записываются метрики оценки.

Аргументы
name Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, таких как на обучающих и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в tensorboard.
Возвращает
Строка, представляющая путь к каталогу, содержащему метрики оценки.

evaluate

Просмотреть исходный код

evaluate(
    input_fn, steps=None, hooks=None, checkpoint_path=None, name=None
)

Выполняет оценку модели с использованием данных оценки input_fn.

Для каждого шага вызывается input_fn, которая возвращает одну партию данных. Выполняет оценку до:

  • steps партий обработаны, или
  • input_fn вызывает исключение конца ввода (tf.errors.OutOfRangeError или StopIteration).
Аргументы
input_fn Функция, которая создаёт входные данные для оценки. Подробнее см. Premade Estimators. Функция должна создавать и возвращать один из следующих вариантов: * Объект tf.data.Dataset: Выходы объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже. * Кортеж (features, labels): где features — tf.Tensor или словарь с именем признака типа строка в Tensor и labels — Tensor или словарь с именем метки типа строка в Tensor. Оба features и labels используются model_fn. Они должны соответствовать ожиданиям model_fn от входных данных.
steps Количество шагов, на которых должна быть выполнена оценка модели. Если None, выполняется оценка до тех пор, пока input_fn не вызовет исключение конца ввода.
hooks Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова оценки.
checkpoint_path Путь к конкретной контрольной точке для оценки. Если None, используется последняя контрольная точка в model_dir. Если контрольных точек в model_dir нет, оценка выполняется с только что инициализированными Variables вместо восстановленных из контрольной точки.
name Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, таких как на обучающих и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в tensorboard.
Возвращает
Словарь, содержащий метрики оценки, указанные в model_fn с ключами по имени, а также запись global_step, которая содержит значение глобального шага, на котором была выполнена эта оценка. Для готовых оценщиков словарь содержит loss (средняя потеря на мини-пакет) и average_loss (средняя потеря на образец). Готовые классификаторы также возвращают accuracy. Готовые регрессоры также возвращают label/mean и prediction/mean.
Исключения
ValueError Если steps <= 0.

experimental_export_all_saved_models

Просмотреть исходный код

experimental_export_all_saved_models(
    export_dir_base, input_receiver_fn_map, assets_extra=None, as_text=False,
    checkpoint_path=None
)

Экспортирует SavedModel с tf.MetaGraphDefs для каждого запрошенного режима.

Для каждого режима, переданного через input_receiver_fn_map, этот метод строит новую графу, вызывая input_receiver_fn для получения признаков и меток Tensors. Затем этот метод вызывает Estimator's model_fn в переданном режиме для генерации графа модели на основе этих признаков и меток, и восстанавливает заданную контрольную точку (или, если её нет, последнюю контрольную точку) в графу. Только один из режимов используется для сохранения переменных в SavedModel (порядок предпочтения: tf.estimator.ModeKeys.TRAIN, tf.estimator.ModeKeys.EVAL, затем tf.estimator.ModeKeys.PREDICT), таким образом, до трёх tf.MetaGraphDefs сохраняются с одним набором переменных в одном каталоге SavedModel.

Для переменных и tf.MetaGraphDefs, временная директория экспорта ниже export_dir_base, и записывает SavedModel в неё, содержащую tf.MetaGraphDef для заданного режима и связанных с ним сигнатур.

Для предсказания экспортированная MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого функцией model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована при запросе, если конкретная не указана. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — приемниками входных данных, предоставляемыми serving_input_receiver_fn.

Для обучения и оценки train_op хранится в дополнительном наборе, а потери, метрики и предсказания включаются в SignatureDef для данного режима.

Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение даёт полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

Аргументы
export_dir_base Строка, содержащая директорию, в которой будут созданы временные поддиректории, содержащие экспортированные SavedModelы.
input_receiver_fn_map Словарь из tf.estimator.ModeKeys к отображениям input_receiver_fn, где input_receiver_fn — функция, которая не принимает аргументов и возвращает соответствующий подкласс InputReceiver.
assets_extra Словарь, определяющий, как заполнить директорию assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
as_text Нужно ли записать прото SavedModel в текстовом формате.
checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается последняя найденная контрольная точка в директории модели.
Возвращает
Строковый путь к экспортированной директории.
Исключения
ValueError если какой-либо input_receiver_fn является None, нет export_outputs или не найдена контрольная точка.

export_saved_model

Просмотр исходного кода

export_saved_model(
    export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
    checkpoint_path=None, experimental_mode=ModeKeys.PREDICT
)

Экспортирует график инференции как SavedModel в указанную директорию.

Для подробного руководства см. Использование SavedModel с Estimators.

Этот метод строит новый график, сначала вызвав serving_input_receiver_fn для получения признаков Tensor, а затем вызвав Estimator's model_fn для создания графика модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если её нет, последнюю) в этот график в новой сессии. Наконец, он создаёт временную директорию экспорта ниже заданной export_dir_base, и записывает SavedModel в неё, содержащую единственную tf.MetaGraphDef, сохранённую из этой сессии.

Экспортированная MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого функцией model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована при запросе, если конкретная не указана. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — приемниками входных данных, предоставляемыми serving_input_receiver_fn.

Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение даёт полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

Параметр experimental_mode может быть использован для экспорта одного графика обучения/оценки/предсказания как SavedModel. Смотрите experimental_export_all_saved_models для полного руководства.

Аргументы
export_dir_base Строка, содержащая директорию, в которой будут созданы временные поддиректории, содержащие экспортированные SavedModelы.
serving_input_receiver_fn Функция, которая не принимает аргументы и возвращает tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver.
assets_extra Словарь, определяющий, как заполнить директорию assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
as_text Нужно ли записать прото SavedModel в текстовом формате.
checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается последняя найденная контрольная точка в директории модели.
experimental_mode Значение tf.estimator.ModeKeys, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция экспериментальная.
Возвращает
Строковый путь к экспортированной директории.
Исключения
ValueError если не предоставлен serving_input_receiver_fn, нет export_outputs или не найдена контрольная точка.

export_savedmodel

Просмотр исходного кода

export_savedmodel(
    export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
    checkpoint_path=None, strip_default_attrs=False
)

Экспортирует график инференции как SavedModel в указанную директорию. (устарело)

Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: Эта функция была переименована, используйте export_saved_model вместо неё.

Для подробного руководства см. Использование SavedModel с Estimators.

Этот метод строит новый график, сначала вызвав serving_input_receiver_fn для получения признаков Tensor, а затем вызвав Estimator's model_fn для создания графика модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если её нет, последнюю) в этот график в новой сессии. Наконец, он создаёт временную директорию экспорта ниже заданной export_dir_base, и записывает SavedModel в неё, содержащую единственную tf.MetaGraphDef, сохранённую из этой сессии.

Экспортированная MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращённого функцией model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована при запросе, если конкретная не указана. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — приемниками входных данных, предоставляемыми serving_input_receiver_fn.

Дополнительные ресурсы могут быть записаны в SavedModel через аргумент assets_extra. Это должен быть словарь, где каждый ключ задаёт путь назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение даёт полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

Аргументы
export_dir_base Строка, содержащая директорию, в которой будут созданы временные поддиректории, содержащие экспортированные SavedModelы.
serving_input_receiver_fn Функция, которая не принимает аргументы и возвращает tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver.
assets_extra Словарь, определяющий, как заполнить директорию assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
as_text Нужно ли записать прото SavedModel в текстовом формате.
checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается последняя найденная контрольная точка в директории модели.
strip_default_attrs Булево значение. Если True, атрибуты с значением по умолчанию будут удалены из NodeDef. Для подробного руководства см. Удаление атрибутов с значениями по умолчанию.
Возвращает
Строковый путь к экспортированной директории.
Возвращает ошибку
ValueError если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или контрольная точка не найдена.

get_variable_names

Просмотреть исходный код

get_variable_names()

Возвращает список всех имён переменных в этой модели.

Возвращает
Список имён.
Возвращает ошибку
ValueError Если Estimator ещё не создал контрольную точку.

get_variable_value

Просмотреть исходный код

get_variable_value(
    name
)

Возвращает значение переменной по заданному имени.

Аргументы
name строка или список строк, имя тензора.
Возвращает
Массив NumPy - значение тензора.
Возвращает ошибку
ValueError Если Estimator ещё не создал контрольную точку.

latest_checkpoint

Просмотреть исходный код

latest_checkpoint()

Находит имя файла последней сохранённой контрольной точки в model_dir.

Возвращает
Полный путь к последней контрольной точке или None , если контрольная точка не найдена.

predict

Просмотреть исходный код

predict(
    input_fn, predict_keys=None, hooks=None, checkpoint_path=None,
    yield_single_examples=True
)

Возвращает предсказания для заданных признаков.

Обратите внимание, что переплетение двух выводов predict не работает. См.: проблема/20506

Аргументы
input_fn Функция, которая строит признаки. Предсказание продолжается до тех пор, пока input_fn не сгенерирует исключение конца входных данных (tf.errors.OutOfRangeError или StopIteration). См. Предопределённые оценщики для получения дополнительной информации. Функция должна создать и вернуть одну из следующих:
  • Объект tf.data.Dataset: Выводы объекта Dataset должны соответствовать ограничениям, описанным ниже.
  • признаки: tf.Tensor или словарь имён признаков (строка) к Tensor. Признаки потребляются model_fn. Они должны удовлетворять ожиданиям model_fn от входных данных.
  • Кортеж, в этом случае извлекается первый элемент в качестве признаков.
predict_keys список str, имя ключей для предсказания. Используется, если tf.estimator.EstimatorSpec.predictions является dict. Если predict_keys используется, остальные предсказания будут отфильтрованы из словаря. Если None, возвращает все.
hooks Список экземпляров подкласса tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова предсказания.
checkpoint_path Путь к конкретной контрольной точке для предсказания. Если None, используется последняя контрольная точка в model_dir. Если в model_dir нет контрольных точек, предсказание выполняется с только что инициализированными Variables вместо тех, которые восстановлены из контрольной точки.
yield_single_examples Если False, возвращает всю партию, как возвращает model_fn , вместо того, чтобы разлагать партию на отдельные элементы. Это полезно, если model_fn возвращает некоторые тензоры, первая размерность которых не равна размеру партии.

Возвращает:

Вычисленные значения тензоров predictions.

Возвращает ошибку
ValueError Если длина партии предсказаний не совпадает, и yield_single_examples равно True.
ValueError Если есть конфликт между predict_keys и predictions. Например, если predict_keys не равно None , но tf.estimator.EstimatorSpec.predictions не является dict.

train

Просмотреть исходный код

train(
    input_fn, hooks=None, steps=None, max_steps=None, saving_listeners=None
)

Обучает модель с использованием обучающих данных input_fn.

Аргументы
input_fn Функция, которая предоставляет входные данные для обучения в виде мини-пакетов. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создать и вернуть одну из следующих:
  • Объект tf.data.Dataset: Выводы объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже.
  • Кортеж (features, labels): Где features это tf.Tensor или словарь имён признаков (строка) к Tensor, и labels это Tensor или словарь имён меток (строка) к Tensor. И features и labels потребляются model_fn. Они должны соответствовать ожиданиям model_fn от входных данных.
hooks Список экземпляров подкласса tf.train.SessionRunHook. Используется для обратных вызовов внутри цикла обучения.
steps Количество шагов для обучения модели. Если None, обучаться бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. steps работает инкрементально. Если вызвать дважды train(steps=10), то обучение произойдёт в общей сложности 20 шагов. Если OutOfRange или StopIteration произойдёт в середине, обучение остановится до 20 шагов. Если вы не хотите инкрементального поведения, установите max_steps вместо этого. Если установлено, max_steps должно быть None.
max_steps Общее количество шагов обучения модели. Если None, обучаться бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. Если установлено, steps должно быть None. Если OutOfRange или StopIteration произойдёт в середине, обучение остановится до max_steps шагов. Два вызова train(steps=100) означают 200 итераций обучения. С другой стороны, два вызова train(max_steps=100) означают, что второй вызов не выполнит ни одной итерации, так как первый вызов выполнил все 100 шагов.
saving_listeners список объектов CheckpointSaverListener. Используется для обратных вызовов, которые выполняются непосредственно перед или после сохранения контрольной точки.
Возвращает
self, для цепочки.
Возвращает ошибку
ValueError Если оба steps и max_steps не равны None.
ValueError Если либо steps или max_steps <= 0.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/estimator/tpu/TPUEstimator

Spec-Zone.ru

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