SigmoidCrossEntropyWithLogits

classe pública SigmoidCrossEntropyWithLogits

Construtores Públicos

Métodos Públicos

estático <T estende TNumber > Operando <T>
sigmoidCrossEntropyWithLogits (escopo do escopo , rótulos do operando <T>, logits do operando <T>)
Calcula a entropia cruzada sigmóide dados logits .

Métodos herdados

booleano
é igual (objeto arg0)
aula final<?>
getClass ()
interno
código hash ()
vazio final
notificar ()
vazio final
notificar todos ()
Corda
toString ()
vazio final
espere (long arg0, int arg1)
vazio final
espere (arg0 longo)
vazio final
espere ()

Construtores Públicos

público SigmoidCrossEntropyWithLogits ()

Métodos Públicos

public static Operand <T> sigmoidCrossEntropyWithLogits (escopo do escopo , rótulos do operando <T>, logits do operando <T>)

Calcula a entropia cruzada sigmóide dados logits .

Mede o erro de probabilidade em tarefas de classificação discreta em que cada classe é independente e não mutuamente exclusiva. Por exemplo, pode-se realizar uma classificação multirrótulo onde uma imagem pode conter um elefante e um cachorro ao mesmo tempo.

Para resumir, seja x = logits , z = labels . A perda logística no pseudocódigo é

 z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
  = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
  = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
  = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
  = (1 - z) * x + log(1 + exp(-x))
  = x - x * z + log(1 + exp(-x))
 

Para x < 0 , para evitar estouro em exp(-x) , reformulamos o acima

 x - x * z + log(1 + exp(-x))
  = log(exp(x)) - x * z + log(1 + exp(-x))
  = - x * z + log(1 + exp(x))
 

Assim, para garantir a estabilidade e evitar overflow, a implementação utiliza esta formulação equivalente

   max(x, 0) - x * z + log(1 + exp(-abs(x)))
 

logits e labels devem ter o mesmo tipo e formato.

Parâmetros
escopo O escopo do TensorFlow
rótulos os rótulos
logitos os logits do tipo float32 ou float64
Devoluções
  • as perdas logísticas em termos de componentes.
Lança
IllegalArgumentException se logits' e rótulos' não tiverem o mesmo formato