Ich habe ein Multi-Label-Problem mit ~ 1000 Klassen, aber nur eine Handvoll sind auf einmal ausgewählt. Wenn tf.nn.sigmoid_cross_entropy_with_logits verwendet wird, nähert sich der Verlust sehr schnell 0 an, da 990+ 0 vorhergesagt werden.tf.nn.sigmoid_cross_entropy_with_logits Gewichte
loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits, labels))
Ist es mathematisch möglich, nur der Verlust von einer großen Konstante mehrere (etwa 1000) nur so, dass ich Verlust Zahlen in tensorboard zeichnen kann, die ich zwischen tatsächlich unterscheiden kann? Ich weiß, dass ich die Werte, die ich zeichne, einfach multiplizieren könnte (ohne den Wert zu beeinflussen, den ich an train_op übergebe), aber ich versuche ein besseres Verständnis dafür zu bekommen, ob die Multiplikation des train_op mit einer Konstante einen wirklichen Effekt haben würde. Zum Beispiel könnte ich eine der folgenden Entscheidungen umzusetzen und ich versuche, durch die möglichen Folgen zu denken:
loss = tf.reduce_mean(tf.multiply(tf.nn.sigmoid_cross_entropy_with_logits(logits, labels), 1000.0))
loss = tf.multiply(tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits, labels)), 1000.0)
Möchten Sie die Trainingsergebnisse unterscheiden erwarten, wenn eine Konstante ist so eingeführt?