tf.keras.metrics.KLDivergence
| Просмотреть исходный код на GitHub |
Вычисляет метрику расхождения Кульбака-Лейблера между y_true и y_pred.
Наследуется от: Mean, Metric, Layer, Module
tf.keras.metrics.KLDivergence(
name='kullback_leibler_divergence', dtype=None
)
metric = y_true * log(y_true / y_pred)
| Аргументы | |
|---|---|
name |
(Необязательно) Имя метрики. |
dtype |
(Необязательно) Тип данных результата метрики. |
Использование в автономном режиме:
m = tf.keras.metrics.KLDivergence() m.update_state([[0, 1], [0, 0]], [[0.6, 0.4], [0.4, 0.6]]) m.result().numpy() 0.45814306
m.reset_states()
m.update_state([[0, 1], [0, 0]], [[0.6, 0.4], [0.4, 0.6]],
sample_weight=[1, 0])
m.result().numpy()
0.9162892
Использование с API compile():
model.compile(optimizer='sgd',
loss='mse',
metrics=[tf.keras.metrics.KLDivergence()])
Методы
reset_states
reset_states()
Сбрасывает все переменные состояния метрики.
Эта функция вызывается между эпохами/шагами, когда метрика оценивается во время обучения.
result
result()
Вычисляет и возвращает тензор значения метрики.
Вычисление результата — это идемпотентная операция, которая просто вычисляет значение метрики с использованием переменных состояния.
update_state
update_state(
y_true, y_pred, sample_weight=None
)
Накапливает статистику метрики.
y_true и y_pred должны иметь одинаковую форму.
| Аргументы | |
|---|---|
y_true |
Значения истинного ответа. Форма = [batch_size, d0, .. dN]. |
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)). |
| Возвращаемое значение | |
|---|---|
| Операция обновления. |
© 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.4/api_docs/python/tf/keras/metrics/KLDivergence