Directorio de artículos
BinaryCrossentropía
tf.keras.losses.BinaryCrossentropy(
from_logits=False, label_smoothing=0, reduction=losses_utils.ReductionV2.AUTO,
name='binary_crossentropy'
)
descripción
Calcule la pérdida de entropía cruzada entre la etiqueta real y la etiqueta predicha.
Cuando solo hay dos clases de etiquetas (asumiendo 0 y 1), use esta pérdida de entropía cruzada. Para cada ejemplo, cada predicción debe tener un valor de punto flotante
parámetro
from_logit
si y_pred se interpreta como tensor de valor logit.
De forma predeterminada, asumimos que y_pred contiene la probabilidad (es decir, el valor en [0, 1])
El número de
coma flotante label_smoothing está en [0,1].
Si es 0, no se realizará ningún suavizado.
Cuando> 0, calcularemos la pérdida entre la etiqueta predicha y la versión suavizada de la etiqueta verdadera, donde el suavizado comprimirá la etiqueta hacia 0.5.
Un valor mayor de label_smoothing corresponde a una suavidad más pesada
reducción
(opcional) Tipo de tf.keras.losses.reducción, aplicable a pérdida. El valor predeterminado es automático.
AUTO indica que la opción de reducción será determinada por el uso.
name
(opcional) El nombre de la op. El valor predeterminado es 'binary_crossenropy'
Parámetros del objeto de instancia llamado
y_true: valor verdadero
y_pred: valor predicho
El
sample_weight opcional de sample_weight se utiliza como coeficiente de pérdida.
Si se proporciona un escalar, la pérdida simplemente se escalará por el valor dado.
Si sample_weight es un tensor de tamaño [batch_size], entonces la pérdida total de cada muestra del lote será reescalada por el elemento correspondiente en el vector sample_weight.
Si la forma de sample_weight es [batch_size, d0, ... dN-1] (o puede transmitirse a esta forma), entonces cada elemento de pérdida de y_pred será escalado por el valor correspondiente de sample_weight.
Ejemplo
Uso independiente
y_true = [[0., 1.], [0., 0.]]
y_pred = [[0.6, 0.4], [0.4, 0.6]]
# Using 'auto'/'sum_over_batch_size' reduction type.
bce = tf.keras.losses.BinaryCrossentropy()
bce(y_true, y_pred).numpy()
0.815
# Calling with 'sample_weight'.
bce(y_true, y_pred, sample_weight=[1, 0]).numpy()
0.458
# Using 'sum' reduction type.
bce = tf.keras.losses.BinaryCrossentropy(
reduction=tf.keras.losses.Reduction.SUM)
bce(y_true, y_pred).numpy()
1.630
# Using 'none' reduction type.
bce = tf.keras.losses.BinaryCrossentropy(
reduction=tf.keras.losses.Reduction.NONE)
bce(y_true, y_pred).numpy()
** Usado en la API tf.keras **
model.compile(optimizer='sgd', loss=tf.keras.losses.BinaryCrossentropy())