Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.keras.losses.SparseCategoricalCrossentropy

TensorFlow 1 versión Ver código fuente en GitHub

Calcula la pérdida de crossentropy entre las etiquetas y las predicciones.

Se utiliza en los cuadernos

Se utiliza en la guía Se utiliza en los tutoriales

Utilice esta función de pérdida crossentropy cuando hay dos o más clases de etiqueta. Esperamos que las etiquetas que se deben proporcionar como enteros. Si desea proporcionar etiquetas con one-hot representación, por favor utilice CategoricalCrossentropy pérdida. No debe haber # classes valores de punto flotante por función para y_pred y un único valor de punto flotante por función para y_true .

En el siguiente fragmento de código, hay un único valor de punto flotante por ejemplo para y_true y # classes flotantes apuntando valores por ejemplo para y_pred . La forma de y_true es [batch_size] y la forma de y_pred es [batch_size, num_classes] .

el uso autónomo:

y_true = [1, 2]
y_pred = [[0.05, 0.95, 0], [0.1, 0.8, 0.1]]
# Using 'auto'/'sum_over_batch_size' reduction type.
scce = tf.keras.losses.SparseCategoricalCrossentropy()
scce(y_true, y_pred).numpy()
1.177
# Calling with 'sample_weight'.
scce(y_true, y_pred, sample_weight=tf.constant([0.3, 0.7])).numpy()
0.814
# Using 'sum' reduction type.
scce = tf.keras.losses.SparseCategoricalCrossentropy(
    reduction=tf.keras.losses.Reduction.SUM)
scce(y_true, y_pred).numpy()
2.354
# Using 'none' reduction type.
scce = tf.keras.losses.SparseCategoricalCrossentropy(
    reduction=tf.keras.losses.Reduction.NONE)
scce(y_true, y_pred).numpy()
array([0.0513, 2.303], dtype=float32)

Uso con la compile() API:

 model.compile(optimizer='sgd',
              loss=tf.keras.losses.SparseCategoricalCrossentropy())
 

from_logits Ya sea y_pred se espera que sea un tensor logit. Por defecto, se supone que y_pred codifica una distribución de probabilidad. ** Nota - El uso de from_logits = verdad puede ser más estable numéricamente.
reduction (Opcional) Tipo de tf.keras.losses.Reduction que aplica a las pérdidas. El valor por defecto es AUTO . AUTO indica que la opción de reducción será determinado por el contexto de uso. Para casi todos los casos el valor predeterminado es SUM_OVER_BATCH_SIZE . Cuando se utiliza con tf.distribute.Strategy , fuera de una función de formación tales como bucles tf.keras compile y fit , utilizando AUTO o SUM_OVER_BATCH_SIZE se producirá un error. Por favor, vea esta formación personalizada tutorial para más detalles.
name nombre opcional para la operación. Por defecto es 'sparse_categorical_crossentropy'.

Métodos

from_config

Ver fuente

Instancia un Loss de su configuración (salida de get_config() ).

args
config Salida de get_config() .

Devoluciones
Una Loss ejemplo.

get_config

Ver fuente

Devuelve el diccionario de configuración para una Loss ejemplo.

__call__

Ver fuente

Invoca la Loss ejemplo.

args
y_true valores de verdad de tierra. forma = [batch_size, d0, .. dN] , excepto las funciones de pérdida dispersos tales como crossentropy categórica escasa donde forma = [batch_size, d0, .. dN-1]
y_pred Los valores pronosticados. forma = [batch_size, d0, .. dN]
sample_weight Opcional sample_weight actúa como un coeficiente para la pérdida. Si se proporciona un escalar, entonces la pérdida es simplemente escalado por el valor dado. Si sample_weight es un tensor de tamaño [batch_size] , entonces la pérdida total para cada muestra de la tanda se reajustarán por el elemento correspondiente en el sample_weight vector. Si la forma de sample_weight es [batch_size, d0, .. dN-1] (o puede ser transmitido a esta forma), entonces cada elemento de pérdida de y_pred es escalado por el valor correspondiente de sample_weight . (Nota sobre dN-1 : todas las funciones de pérdida reducen por 1 dimensión, por lo general eje = -1).

Devoluciones
Flotador pérdida ponderada Tensor . Si reduction es NONE , este tiene la forma [batch_size, d0, .. dN-1] ; de lo contrario, es escalar. (Nota dN-1 porque todas las funciones de pérdida reducen por 1 dimensión, por lo general eje = -1).

aumentos
ValueError Si la forma de sample_weight no es válido.