Spec-Zone.ru › TensorFlow 1.15

tf.estimator.PoissonRegressionHead

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

Создаёт Head для регрессии Пуассона с использованием tf.nn.log_poisson_loss.

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

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

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

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

tf.compat.v1.estimator.PoissonRegressionHead, `tf.compat.v2.estimator.PoissonRegressionHead`

tf.estimator.PoissonRegressionHead(
    label_dimension=1, weight_column=None,
    loss_reduction=losses_utils.ReductionV2.SUM_OVER_BATCH_SIZE,
    compute_full_loss=True, name=None
)

Функция потерь представляет собой взвешенную сумму по всем входным измерениям. То есть, если входные метки имеют размер [batch_size, label_dimension], функция потерь — взвешенная сумма по обоим batch_size и label_dimension.

Функция ожидает logits с размером [D0, D1, ... DN, label_dimension]. Во многих приложениях размер равен [batch_size, label_dimension].

Размер labels должен совпадать с размером logits, а именно [D0, D1, ... DN, label_dimension]. Если label_dimension=1, также поддерживается размер [D0, D1, ... DN].

Если weight_column указан, веса должны иметь размер [D0, D1, ... DN], [D0, D1, ... DN, 1] или [D0, D1, ... DN, label_dimension].

Это реализовано как обобщённая линейная модель, см. https://en.wikipedia.org/wiki/Generalized_linear_model

Эта функция может быть использована с готовым оценщиком. Пример:

my_head = tf.estimator.PoissonRegressionHead()
my_estimator = tf.estimator.DNNEstimator(
    head=my_head,
    hidden_units=...,
    feature_columns=...)

Также она может быть использована с настраиваемым model_fn. Пример:

def _my_model_fn(features, labels, mode):
  my_head = tf.estimator.PoissonRegressionHead()
  logits = tf.keras.Model(...)(features)

  return my_head.create_estimator_spec(
      features=features,
      mode=mode,
      labels=labels,
      optimizer=tf.keras.optimizers.Adagrad(lr=0.1),
      logits=logits)

my_estimator = tf.estimator.Estimator(model_fn=_my_model_fn)
Аргументы
weight_column Строка или NumericColumn, созданная с помощью tf.feature_column.numeric_column, определяющая столбец признаков, представляющий собой веса. Используется для снижения или повышения веса примеров во время обучения. Будет умножаться на потерю примера.
label_dimension Количество меток регрессии на пример. Это размер последнего измерения меток Tensor (как правило, имеет размер [batch_size, label_dimension]).
loss_reduction Один из tf.losses.Reduction, за исключением NONE. Определяет, как свести потери обучения по пакету и измерениям меток. По умолчанию SUM_OVER_BATCH_SIZE, а именно взвешенная сумма потерь, делённая на batch size * label_dimension.
compute_full_loss Включать ли постоянный log(z!) член при вычислении потерь Пуассона. См. tf.nn.log_poisson_loss для полного документации.
name Имя функции головы. При указании, ключи сводок и метрик будут иметь суффикс "/" + name. Также используется как name_scope при создании операций.
Атрибуты
logits_dimension Подробности см. в base_head.Head.
loss_reduction Подробности см. в base_head.Head.
name Подробности см. в base_head.Head.

Методы

create_estimator_spec

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

create_estimator_spec(
    features, mode, logits, labels=None, optimizer=None, trainable_variables=None,
    train_op_fn=None, update_ops=None, regularization_losses=None
)

Возвращает EstimatorSpec для того, чтобы модель_fn могла её вернуть.

Рекомендуется передавать все аргументы через имя.

Аргументы
features Входное отображение dict имени признаков строкового типа на Tensor или SparseTensor объекты, содержащие значения для данного признака в мини-пакет. Часто используется для извлечения тензора веса примера.
mode ModeKeys оценщика.
logits Логарифмы Tensor для использования функцией головы.
labels Метки Tensor, или dict отображение имен меток строкового типа на Tensor объекты значений меток.
optimizer Экземпляр tf.keras.optimizers.Optimizer для оптимизации функции потерь в режиме TRAIN. То есть, устанавливает train_op = optimizer.get_updates(loss, trainable_variables), которая обновляет переменные для минимизации loss.
trainable_variables Список или кортеж Variable объектов для обновления, чтобы минимизировать loss. В Tensorflow 1.x по умолчанию это список переменных, собранных в графе под ключом GraphKeys.TRAINABLE_VARIABLES. Поскольку Tensorflow 2.x не имеет коллекций и GraphKeys, trainable_variables необходимо явно передавать здесь.
train_op_fn Функция, которая принимает скалярную функцию потерь Tensor и возвращает операцию для оптимизации модели с функцией потерь в режиме TRAIN. Используется, если optimizer равно None. Точно один из train_op_fn и optimizer должен быть установлен в режиме TRAIN. По умолчанию, это None в других режимах. Если хотите оптимизировать функцию потерь самостоятельно, можете передать lambda _: tf.no_op() и использовать EstimatorSpec.loss для вычисления и применения градиентов.
update_ops Список или кортеж операций обновления, которые необходимо запускать в режиме обучения. Например, слои, такие как BatchNormalization, создают операции обновления среднего и дисперсии, которые необходимо запускать в режиме обучения. В Tensorflow 1.x они помещаются в коллекцию UPDATE_OPS. Поскольку Tensorflow 2.x не имеет коллекций, update_ops необходимо передавать явно здесь.
regularization_losses Список дополнительных скалярных потерь, которые необходимо добавить к функция потерь обучения, таких как потери регуляризации.
Возвращаемое значение
EstimatorSpec.

loss

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

loss(
    labels, logits, features=None, mode=None, regularization_losses=None
)

Возвращает предсказания на основе ключей. Подробности см. в base_head.Head.

metrics

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

metrics(
    regularization_losses=None
)

Создаёт метрики. Подробности см. в base_head.Head.

predictions

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

predictions(
    logits
)

Возвращает предсказания на основе ключей. Подробности см. в base_head.Head.

Аргументы
logits Логарифмы Tensor с размером [D0, D1, ... DN, logits_dimension]. Для многих приложений размер равен [batch_size, logits_dimension].
Возвращаемое значение
Словарь предсказаний.

update_metrics

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

update_metrics(
    eval_metrics, features, logits, labels, regularization_losses=None
)

Обновляет метрики оценки. Подробности см. в base_head.Head.

© 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/PoissonRegressionHead

Spec-Zone.ru

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