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
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
Описание
Используется в блокнотах
| Используется в руководстве |
|---|
weights выступает в качестве коэффициента функции потерь. Если задано скалярное значение, функция потерь просто умножается на это значение. Если weights — тензор размера [batch_size], общая функция потерь для каждого примера в пакете масштабируется соответствующим элементом вектора weights. Если форма weights совпадает с формой predictions, то функция потерь для каждого измеряемого элемента predictions масштабируется соответствующим значением weights.
| Аргументы | |
|---|---|
labels | Тензор фактических выходных значений с теми же размерностями, что и у «predictions». |
predictions | Предсказанные выходные значения. |
weights | Необязательный Tensor, ранг которого равен 0 или совпадает с рангом labels; он должен допускать трансляцию к labels (то есть все размерности должны быть либо равны 1, либо совпадать с соответствующей размерностью losses). |
scope | Область видимости операций, выполняемых при вычислении функции потерь. |
loss_collection | Коллекция, в которую будет добавлена функция потерь. |
reduction | Тип редукции, применяемой к функции потерь. |
| Возвращает | |
|---|---|
Взвешенная функция потерь, тип float 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