Domanda

My uscita desiderata non è codifica 1-caldo, ma come un 10 D vettore: [1, 0, 1, 0, 1, 0, 0, 1, 1, 1] e l'ingresso è come il normale set di dati MNIST.

Voglio usare tensorflow per costruire un modello per imparare questo, poi che la perdita di funzione devo scegliere?

È stato utile?

Soluzione

Se le classi non arre reciprocamente esclusività, quindi basta più uscite del sigma (invece della funzione softmax come si vede nella classificatori esempio MNIST). Ogni uscita sarà una probabilità separata che le assegna rete di membri di quella classe.

Per una funzione di perdita di corrispondenza, in tensorflow, è possibile utilizzare il built-in tf.nn.sigmoid_cross_entropy_with_logits - nota che funziona sulle logit - gli ingressi alla funzione sigma - per l'efficienza. Il collegamento spiega la matematica coinvolti.

Si avrà ancora voglia di una funzione sigmoide sullo strato di uscita troppo, per quando si legge al largo delle previsioni, ma si applica la funzione di perdita sopra per ingresso della funzione sigma. Nota: questo non è un requisito del problema, si può facilmente scrivere una funzione di perdita che le opere dalle uscite sigma, solo il tensorflow built-in è stato scritto in modo diverso per ottenere un piccolo aumento di velocità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top