tf.keras.backend.categorical_crossentropy
Категориальная кросс-энтропия между тензором вывода и тензором целевого значения.
tf.keras.backend.categorical_crossentropy(
target, output, from_logits=False, axis=-1
)
| Аргументы |
target | Тензор с такой же формой, как output. |
output | Тензор, полученный из softmax (если from_logits равно True, то ожидается, что output будут логарифмами). |
from_logits | Булево значение, указывающее, является ли output результатом softmax или тензором логарифмов. |
axis | Целое число, определяющее ось каналов. axis=-1 соответствует формату данных channels_last', andось=1corresponds to data format`channels_first`. |
| Возвращаемое значение |
| Тензор вывода. |
| Исключения |
ValueError | если axis не равно -1 и не является одной из осей output. |
Пример:
import tensorflow as tf
from tensorflow.keras import backend as K
a = tf.constant([1., 0., 0., 0., 1., 0., 0., 0., 1.], shape=[3,3])
print("a: ", a)
b = tf.constant([.9, .05, .05, .5, .89, .6, .05, .01, .94], shape=[3,3])
print("b: ", b)
loss = K.categorical_crossentropy(a, b)
print('Loss: ', loss) #Loss: tf.Tensor([0.10536055 0.8046684 0.06187541], shape=(3,), dtype=float32)
loss = K.categorical_crossentropy(a, a)
print('Loss: ', loss) #Loss: tf.Tensor([1.1920929e-07 1.1920929e-07 1.1920929e-07], shape=(3,), dtype=float32)