2

私のラベルは次のようになります。

label = [0, 1, 0, 0, 1, 1, 0]

つまり、クラス 1、4、5 が対応するサンプルに存在します。これはソフトクラスと呼ばれるものだと思います。

私は自分の損失を次のように計算しています:

logits = tf.layers.dense(encoding, 7, activation=None)

cross_entropy = tf.nn.sigmoid_cross_entropy_with_logits(
    labels=labels,
    logits=logits
)

loss = tf.reduce_mean(cross_entropy)

Tensorboard によると、予想どおり、損失は時間の経過とともに減少しています。ただし、精度はゼロでフラットです。

eval_metric_ops = {
    'accuracy': tf.metrics.accuracy(labels=labels, predictions=logits),
}
tf.summary.scalar('accuracy', eval_metric_ops['accuracy'][1])

ソフト クラスを使用する場合、モデルの精度を計算するにはどうすればよいですか?

4

1 に答える 1