Spec-Zone.ru › TensorFlow 2.3

tf.keras.losses.Loss

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

Базовый класс потерь.

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

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

tf.losses.Loss

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

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

tf.compat.v1.keras.losses.Loss

tf.keras.losses.Loss(
    reduction=losses_utils.ReductionV2.AUTO, name=None
)

Подклассы должны реализовать:

  • call(): Содержит логику вычисления потерь с использованием y_true, y_pred.

Пример реализации подкласса:

class MeanSquaredError(Loss):

  def call(self, y_true, y_pred):
    y_pred = tf.convert_to_tensor_v2(y_pred)
    y_true = tf.cast(y_true, y_pred.dtype)
    return tf.reduce_mean(math_ops.square(y_pred - y_true), axis=-1)

При использовании с tf.distribute.Strategy вне встроенных циклов обучения, таких как tf.keras compile и fit, используйте типы сокращения 'SUM' или 'NONE' и явно вычисляйте потери в вашем цикле обучения. Использование 'AUTO' или 'SUM_OVER_BATCH_SIZE' приведёт к ошибке.

См. этот учебник по кастомному обучению tutorial для получения более подробной информации.

Вы можете реализовать 'SUM_OVER_BATCH_SIZE' с использованием глобального размера пакета, например:

with strategy.scope():
  loss_obj = tf.keras.losses.CategoricalCrossentropy(
      reduction=tf.keras.losses.Reduction.NONE)
  ....
  loss = (tf.reduce_sum(loss_obj(labels, predictions)) *
          (1. / global_batch_size))
Аргументы
reduction (Необязательно) Тип tf.keras.losses.Reduction для применения к потерям. Значение по умолчанию — AUTO. AUTO указывает, что параметр reduction будет определён контекстом использования. Почти во всех случаях это по умолчанию SUM_OVER_BATCH_SIZE. При использовании с tf.distribute.Strategy вне встроенных циклов обучения, таких как tf.keras compile и fit, использование AUTO или SUM_OVER_BATCH_SIZE приведёт к ошибке. См. этот учебник по кастомному обучению tutorial для получения более подробной информации.
name Необязательное имя для операции.

Методы

call

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

@abc.abstractmethod
call(
    y_true, y_pred
)

Вызывает экземпляр Loss.

Аргументы
y_true Значения фактических данных. форма = [batch_size, d0, .. dN], за исключением функций потерь с разреженными данными, таких как sparse categorical crossentropy, где форма = [batch_size, d0, .. dN-1]
y_pred Предсказанные значения. форма = [batch_size, d0, .. dN]
Возвращаемые значения
Значения потерь с формой [batch_size, d0, .. dN-1].

from_config

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

@classmethod
from_config(
    config
)

Создаёт экземпляр Loss из его конфигурации (выхода get_config()).

Аргументы
config Выход get_config().
Возвращаемые значения
Экземпляр Loss .

get_config

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

get_config()

Возвращает словарь конфигурации для экземпляра Loss.

__call__

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

__call__(
    y_true, y_pred, sample_weight=None
)

Вызывает экземпляр Loss.

Аргументы
y_true Значения фактических данных. форма = [batch_size, d0, .. dN], за исключением функций потерь с разреженными данными, таких как sparse categorical crossentropy, где форма = [batch_size, d0, .. dN-1]
y_pred Предсказанные значения. форма = [batch_size, d0, .. dN]
sample_weight Необязательные sample_weight действуют как коэффициент потерь. Если предоставлен скаляр, то потери просто масштабируются заданным значением. Если sample_weight — это тензор размером [batch_size], то общие потери для каждого образца пакета масштабируются соответствующим элементом вектора sample_weight. Если форма sample_weight — [batch_size, d0, .. dN-1], то каждый элемент потерь y_pred масштабируется соответствующим значением из sample_weight. (Примечание по dN-1: все функции потерь сводятся по 1 размерности, обычно по оси = -1.)
Возвращаемые значения
Весовые потери float Tensor. Если reduction — NONE, у этой величины форма [batch_size, d0, .. dN-1]; иначе — скаляр. (Примечание dN-1, так как все функции потерь сводятся по 1 размерности, обычно по оси = -1.)
Исключения
ValueError Если форма sample_weight недопустима.

© 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/r2.3/api_docs/python/tf/keras/losses/Loss

Spec-Zone.ru

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