Spec-Zone.ru › TensorFlow

tf.compat.v1.losses.mean_squared_error

Добавляет потерю суммы квадратов в процедуру обучения.

tf.compat.v1.losses.mean_squared_error(
    labels,
    predictions,
    weights=1.0,
    scope=None,
    loss_collection=ops.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

Переход к TF2

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

tf.compat.v1.losses.mean_squared_error в основном совместим с выполнением в режиме eager и tf.function. Однако аргумент loss_collection игнорируется при выполнении в режиме eager, и никакие потери не будут записаны в коллекции потерь. Вам нужно будет либо вручную удерживать возвращаемое значение, либо полагаться на отслеживание потерь с помощью tf.keras.Model.

Для перехода к стилю TF2 используйте класс tf.keras.losses.MeanSquaredError и вызывайте объект вместо этого.

Структурное отображение на родной TF2

До:

loss = tf.compat.v1.losses.mean_squared_error(
  labels=labels,
  predictions=predictions,
  weights=weights,
  reduction=reduction)

После:

loss_fn = tf.keras.losses.MeanSquaredError(
  reduction=reduction)
loss = loss_fn(
  y_true=labels,
  y_pred=predictions,
  sample_weight=weights)

Как сопоставить аргументы

Имя аргумента TF1 Имя аргумента TF2 Примечание
labels y_true В методе __call__()
predictions y_pred В методе __call__()
weights sample_weight В методе __call__(). Требования к форме sample_weight отличаются от требований к форме weights. Подробную информацию о определении аргумента см. в определении аргумента.
scope Не поддерживается -
loss_collection Не поддерживается Потери следует отслеживать явно или с помощью API Keras, например, add_loss, а не через коллекции.
reduction reduction В конструкторе. Значения tf.compat.v1.losses.Reduction.SUM_OVER_BATCH_SIZE, tf.compat.v1.losses.Reduction.SUM, tf.compat.v1.losses.Reduction.NONE в tf.compat.v1.losses.softmax_cross_entropy соответствуют tf.keras.losses.Reduction.SUM_OVER_BATCH_SIZE, tf.keras.losses.Reduction.SUM, tf.keras.losses.Reduction.NONE соответственно. Если вы использовали другое значение для reduction, включая значение по умолчанию tf.compat.v1.losses.Reduction.SUM_BY_NONZERO_WEIGHTS, нет прямо соответствующего значения. Пожалуйста, измените реализацию потерь вручную.

Пример использования до и после

До:

y_true = [1, 2, 3]
y_pred = [1, 3, 5]
weights = [0, 1, 0.25]
# samples with zero-weight are excluded from calculation when `reduction`
# argument is set to default value `Reduction.SUM_BY_NONZERO_WEIGHTS`
tf.compat.v1.losses.mean_squared_error(
   labels=y_true,
   predictions=y_pred,
   weights=weights).numpy()
1.0
tf.compat.v1.losses.mean_squared_error(
   labels=y_true,
   predictions=y_pred,
   weights=weights,
   reduction=tf.compat.v1.losses.Reduction.SUM_OVER_BATCH_SIZE).numpy()
0.66667

После:

y_true = [[1.0], [2.0], [3.0]]
y_pred = [[1.0], [3.0], [5.0]]
weights = [1, 1, 0.25]
mse = tf.keras.losses.MeanSquaredError(
   reduction=tf.keras.losses.Reduction.SUM_OVER_BATCH_SIZE)
mse(y_true=y_true, y_pred=y_pred, sample_weight=weights).numpy()
0.66667

Описание

Используется в ноутбуках

Используется в руководстве
  • Миграция LoggingTensorHook и StopAtStepHook в Keras-коллбеки
  • Миграция от Estimator к API Keras
  • Миграция обучения на нескольких GPU с одним рабочим узлом
  • Миграция обучения с несколькими рабочими узлами на CPU/GPU
  • Миграция SessionRunHook в Keras-коллбеки

weights выступает в качестве коэффициента для потери. Если предоставлен скаляр, то потеря просто масштабируется на заданное значение. Если weights является тензором размера [batch_size], то общая потеря для каждого образца в батче масштабируется соответствующим элементом в векторе weights. Если форма weights совпадает с формой predictions, то потеря каждого измеримого элемента predictions масштабируется соответствующим значением из weights.

Аргументы
labels Тензор фактического выхода, имеющий такие же размеры, как и 'predictions'.
predictions Предсказанные выходы.
weights Необязательный Tensor, ранг которого равен 0 или такому же, как у labels, и должен быть совместим с вектором labels (т.е. все измерения должны быть либо 1, либо совпадать с соответствующим измерением losses).
scope Область для операций, выполняемых при вычислении потерь.
loss_collection Коллекция, в которую будут добавлены потери.
reduction Тип применения сокращения к потере.
Возвращаемое значение
Вещественная потери Tensor. Если reduction - NONE, форма соответствует форме labels; в противном случае - скаляр.
Исключения
ValueError Если форма predictions не соответствует форме labels или если форма weights неверна. Также, если labels или predictions равно None.

© 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/api_docs/python/tf/compat/v1/losses/mean_squared_error

Spec-Zone.ru

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