tf.keras.losses.KLDivergence
| Просмотреть исходный код на GitHub |
Вычисляет потерю расхождения Кульбака—Лейблера между y_true и y_pred.
tf.keras.losses.KLDivergence(
reduction=losses_utils.ReductionV2.AUTO, name='kullback_leibler_divergence'
)
loss = y_true * log(y_true / y_pred)
См.: https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence
Использование:
k = tf.keras.losses.KLDivergence()
loss = k([.4, .9, .2], [.5, .8, .12])
print('Loss: ', loss.numpy()) # Loss: 0.11891246
Использование с API compile:
model = tf.keras.Model(inputs, outputs)
model.compile('sgd', loss=tf.keras.losses.KLDivergence())
Методы
from_config
@classmethod
from_config(
config
)
Инициализирует Loss по его конфигурации (выход get_config()).
| Аргументы | |
|---|---|
config | Выход get_config(). |
| Возвращаемое значение | |
|---|---|
Экземпляр Loss . |
get_config
get_config()
__call__
__call__(
y_true, y_pred, sample_weight=None
)
Вызывает экземпляр Loss.
| Аргументы | |
|---|---|
y_true | Значения целевого выхода. shape = [batch_size, d0, .. dN] |
y_pred | Предсказанные значения. shape = [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/r1.15/api_docs/python/tf/keras/losses/KLDivergence