2017-01-18 1 views
0

J'ai un problème de classification multi-étiquettes avec 5 étiquettes. Est-ce correct si ma couche de sortie est de forme [n_samples, n_labels = 5] et que la fonction de perte est tf.nn.sigmoid_cross_entropy_with_logits? Ou devrais-je avoir la couche de sortie sous la forme de [n_samples, n_labels = 5, 2] où 2 est à coder si chaque étiquette est assignée à l'échantillon ou pas?Utilisation de Tensorflow pour la classification multi-étiquettes

+1

Comment planifier l'utilisation du classificateur multilabel ?? Les classificateurs multi-labels sont très différents du classifieur multi-classe. Tensorflow a aussi la fonction sigmoid_cross_entropy qui est généralement utilisée pour la classification multi-étiquettes et ensuite vous apprenez une sorte de seuil ou utilisez un seuil constant pour sélectionner les étiquettes pour une instance. – Kashyap

+0

Actuellement, j'utilise tf.nn.sigmoid_cross_entropy_with_logits car c'est celui qui convient à multi-label et le softmax est un problème multi-classe. J'ai édité mon post. – Nima

+0

La couche de sortie doit toujours être de forme '[n_samples, n_labels]' – Kashyap

Répondre

-1

Je pense que la forme de la couche de sortie doit être [N_SAMPLES, n_labels], et quand vous en utilisant tf.nn.softmax_cross_entropy_with_logits, assurez-vous que le tableau de l'étiquette est dans le format d'un chaud, une autre interface recommandée est tf.nn.sparse_softmax_cross_entropy_with_logits, qui les étiquettes doivent être l'entrée de n_labels;