2016-04-11 42 views
5

Sto utilizzando la funzione di perdita di entropia cross sigmoid per un problema di classificazione multilabel come previsto da this tutorial. Tuttavia, in entrambi i risultati sul tutorial e sui risultati, le previsioni di output sono comprese nell'intervallo (-Inf, Inf), mentre l'intervallo di un sigmoid è [0, 1]. Il sigmoid viene elaborato solo nel backprop? Cioè, non dovrebbe un passo avanti schiacciare l'uscita?Caffe sigmoid cross entropy loss

risposta

5

In questo esempio l'input per il livello "SigmoidCrossEntropyLoss" è l'output di un livello completamente connesso. Infatti non ci sono vincoli sui valori delle uscite di un layer "InnerProduct" e possono essere nel range [-inf, inf].
Tuttavia, se si esamina attentamente lo "SigmoidCrossEntropyLoss", si noterà che include uno "Sigmoid" layer inside - per garantire una stima del gradiente stabile.
Pertanto, al momento del test, è necessario sostituire lo "SigmoidCrossEntropyLoss" con un semplice livello "Sigmoid" per generare previsioni per classe.

+0

Grazie @Shai. Ti stai aggrappato a queste risposte di Caffe – marcman