Calcula a perda de Huber entre rótulos e previsões.
Para cada valor x com error = labels - predictions
:
loss = 0.5 * x^2 if |x| <= d loss = 0.5 * d^2 + d * (|x| - d) if |x| > d
onde d é delta.
Uso autônomo:
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} }); Huber huberLoss = new Huber(tf); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces 0.155
Ligando com peso da amostra:
Operand<TFloat32> sampleWeight = tf.constant(new float[] {1.f, 0.f}); Operand<TFloat32> result = huberLoss.call(labels, predictions, sampleWeight); // produces 0.09f
Usando o tipo de redução SUM
:
Huber huberLoss = new Huber(tf, Reduction.SUM); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces 0.32f
Usando NONE
tipo de redução:
Huber huberLoss = new Huber(tf, Reduction.NONE); Operand<TFloat32> result = huberLoss.call(labels, predictions); // produces [0.18f, 0.13f]
Veja também
Constantes
flutuador | DELTA_DEFAULT |
Campos herdados
Construtores Públicos
Huber (operações tf) Cria uma Perda Huber usando getSimpleName() como o nome da perda, DELTA_DEFAULT como o delta e uma Redução de Perda de REDUCTION_DEFAULT | |
Huber (Ops tf, nome da string) Cria uma perda Huber usando DELTA_DEFAULT como delta e uma redução de perda de REDUCTION_DEFAULT | |
Huber (Ops tf, redução de redução) Cria uma Perda Huber usando getSimpleName() como o nome da perda e DELTA_DEFAULT como o delta | |
Huber (Ops tf, nome da string, redução de redução) Cria uma perda Huber usando DELTA_DEFAULT como delta | |
Métodos Públicos
<T estende TNumber > Operando <T> |
Métodos herdados
Constantes
flutuação final estática pública DELTA_DEFAULT
Construtores Públicos
Huber público (Ops tf)
Cria uma Perda Huber usando getSimpleName()
como o nome da perda, DELTA_DEFAULT
como o delta e uma Redução de Perda de REDUCTION_DEFAULT
Parâmetros
tf | o TensorFlow Ops |
---|
public Huber (Ops tf, nome da string)
Cria uma perda Huber usando DELTA_DEFAULT
como delta e uma redução de perda de REDUCTION_DEFAULT
Parâmetros
tf | o TensorFlow Ops |
---|---|
nome | o nome da perda, se nulo, então getSimpleName() é usado. |
Huber público (Ops tf, Redução de redução)
Cria uma Perda Huber usando getSimpleName()
como o nome da perda e DELTA_DEFAULT
como o delta
Parâmetros
tf | o TensorFlow Ops |
---|---|
redução | Tipo de redução a aplicar à perda. |
public Huber (Ops tf, nome da string, redução de redução)
Cria uma perda Huber usando DELTA_DEFAULT
como delta
Parâmetros
tf | o TensorFlow Ops |
---|---|
nome | o nome da perda, se nulo, então getSimpleName() é usado. |
redução | Tipo de redução a aplicar à perda. |
public Huber (Ops tf, nome da string, float delta, redução de redução)
Cria uma perda Huber
Parâmetros
tf | o TensorFlow Ops |
---|---|
nome | o nome da perda, se nulo, então getSimpleName() é usado. |
delta | o ponto onde a função de perda de Huber muda de quadrática para linear. |
redução | Tipo de redução a aplicar à perda. |
Métodos Públicos
pública Operando <T> chamada ( Operando <? estende TNumber > rótulos, Operando <T> previsões, Operando <T> sampleWeights)
Gera um operando que calcula a perda.
Parâmetros
rótulos | os valores verdadeiros ou rótulos |
---|---|
previsões | as previsões |
sampleWeights | SampleWeights opcional atua como um coeficiente para a perda. Se um escalar for fornecido, a perda será simplesmente dimensionada pelo valor fornecido. Se SampleWeights for um tensor de tamanho [batch_size], a perda total de cada amostra do lote será redimensionada pelo elemento correspondente no vetor SampleWeights. Se a forma de SampleWeights for [batch_size, d0, .. dN-1] (ou pode ser transmitida para esta forma), então cada elemento de perda de previsões é dimensionado pelo valor correspondente de SampleWeights. (Nota sobre dN-1: todas as funções de perda reduzem em 1 dimensão, geralmente eixo = -1.) |
Devoluções
- a perda