Calcula la pérdida de divergencia de Kullback-Leibler entre etiquetas y predicciones.
loss = labels * log(labels / predictions)
Uso independiente:
Operand<TFloat32> labels = tf.constant(new float[][] { {0.f, 1.f}, {0.f, 0.f} }); Operand<TFloat32> predictions = tf.constant(new float[][] { {0.6f, 0.4f}, {0.4f, 0.6f} }); KLDivergence kld = new KLDivergence(tf); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.458
Llamando con peso de muestra:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {0.8f, 0.2f}); Operand<TFloat32> result = kld.call(labels, predictions, sampleWeight); // produces 0.366f
Usando el tipo de reducción SUM
:
KLDivergence kld = new KLDivergence(tf, Reduction.SUM); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.916f
Usando NONE
tipo de reducción:
KLDivergence kld = new KLDivergence(tf, Reduction.NONE); Operand<TFloat32> result = kld.call(labels, predictions); // produces [0.916f, -3.08e-06f]
Ver también
Campos heredados
Constructores públicos
KLDivergencia (Ops tf) Crea una pérdida de divergencia de Kullback Leibler usando getSimpleName() como nombre de pérdida y una reducción de pérdida de REDUCTION_DEFAULT | |
KLDivergencia (Ops tf, Reducción reducción) Crea una pérdida de pérdida de divergencia de Kullback Leibler usando getSimpleName() como nombre de pérdida | |
KLDivergence (Ops tf, nombre de cadena, reducción de reducción) Crea una pérdida de divergencia de Kullback Leibler |
Métodos públicos
<T extiende TNumber > Operando <T> |
Métodos heredados
Constructores públicos
público KLDivergence (Ops tf)
Crea una pérdida de divergencia de Kullback Leibler usando getSimpleName()
como nombre de pérdida y una reducción de pérdida de REDUCTION_DEFAULT
Parámetros
tf | las operaciones de TensorFlow |
---|
público KLDivergencia (Ops tf, Reducción reducción)
Crea una pérdida de pérdida de divergencia de Kullback Leibler usando getSimpleName()
como nombre de pérdida
Parámetros
tf | las operaciones de TensorFlow |
---|---|
reducción | Tipo de Reducción a aplicar al siniestro. |
public KLDivergence (Ops tf, nombre de cadena, reducción de reducción)
Crea una pérdida de divergencia de Kullback Leibler
Parámetros
tf | las operaciones de TensorFlow |
---|---|
nombre | el nombre de la perdida |
reducción | Tipo de Reducción a aplicar al siniestro. |
Métodos públicos
pública operando <T> llamada ( Operando <? extiende TNumber > etiquetas, operando <T> predicciones, operando <T> sampleWeights)
Genera un operando que calcula la pérdida.
Parámetros
etiquetas | los valores de verdad o etiquetas |
---|---|
predicciones | las predicciones |
sampleWeights | SampleWeights opcional actúa como un coeficiente para la pérdida. Si se proporciona un escalar, entonces la pérdida simplemente se escala por el valor dado. Si SampleWeights es un tensor de tamaño [batch_size], entonces la pérdida total para cada muestra del lote se reescala por el elemento correspondiente en el vector SampleWeights. Si la forma de SampleWeights es [batch_size, d0, .. dN-1] (o se puede transmitir a esta forma), entonces cada elemento de pérdida de las predicciones se escala por el valor correspondiente de SampleWeights. (Nota sobre dN-1: todas las funciones de pérdida se reducen en 1 dimensión, generalmente eje = -1). |
Devoluciones
- la pérdida