Calcola la perdita di divergenza di Kullback-Leibler tra etichette e previsioni.
loss = labels * log(labels / predictions)
Utilizzo autonomo:
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
Chiamata con peso campione:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {0.8f, 0.2f}); Operand<TFloat32> result = kld.call(labels, predictions, sampleWeight); // produces 0.366f
Utilizzando il tipo di riduzione SUM
:
KLDivergence kld = new KLDivergence(tf, Reduction.SUM); Operand<TFloat32> result = kld.call(labels, predictions); // produces 0.916f
Utilizzando il tipo di riduzione NONE
:
KLDivergence kld = new KLDivergence(tf, Reduction.NONE); Operand<TFloat32> result = kld.call(labels, predictions); // produces [0.916f, -3.08e-06f]
Vedi anche
Campi ereditati
Costruttori pubblici
KLDivergence (Ops tf) Crea una perdita di divergenza Kullback Leibler utilizzando getSimpleName() come nome della perdita e una riduzione della perdita di REDUCTION_DEFAULT | |
KLDivergence (Ops tf, Riduzione riduzione) Crea una perdita Kullback Leibler Divergence Loss utilizzando getSimpleName() come nome della perdita | |
KLDivergence (Ops tf, Nome stringa, Riduzione riduzione) Crea una perdita di divergenza di Kullback Leibler |
Metodi pubblici
<T estende TNumero > Operando <T> |
Metodi ereditati
Costruttori pubblici
KLDivergence pubblica (Ops tf)
Crea una perdita di divergenza Kullback Leibler utilizzando getSimpleName()
come nome della perdita e una riduzione della perdita di REDUCTION_DEFAULT
Parametri
tf | le operazioni TensorFlow |
---|
KLDivergence pubblica (Ops tf, Riduzione riduzione)
Crea una perdita Kullback Leibler Divergence Loss utilizzando getSimpleName()
come nome della perdita
Parametri
tf | le operazioni TensorFlow |
---|---|
riduzione | Tipo di riduzione da applicare alla perdita. |
public KLDivergence (Ops tf, Nome stringa, Riduzione riduzione)
Crea una perdita di divergenza di Kullback Leibler
Parametri
tf | le operazioni TensorFlow |
---|---|
nome | il nome della perdita |
riduzione | Tipo di riduzione da applicare alla perdita. |
Metodi pubblici
chiamata pubblica dell'operando <T> ( Operando <? estende TNumber > etichette, previsioni dell'operando <T>, operando <T> sampleWeights)
Genera un operando che calcola la perdita.
Parametri
etichette | i valori o le etichette di verità |
---|---|
previsioni | le previsioni |
campionePesi | sampleWeights opzionale funge da coefficiente per la perdita. Se viene fornito uno scalare, la perdita viene semplicemente ridimensionata in base al valore fornito. Se SampleWeights è un tensore di dimensione [batch_size], la perdita totale per ciascun campione del batch viene riscalata dall'elemento corrispondente nel vettore SampleWeights. Se la forma di SampleWeights è [batch_size, d0, .. dN-1] (o può essere trasmessa a questa forma), ogni elemento di perdita delle previsioni viene ridimensionato in base al valore corrispondente di SampleWeights. (Nota su dN-1: tutte le funzioni di perdita si riducono di 1 dimensione, solitamente asse=-1.) |
Ritorni
- la perdita