Я работаю над проблемой с несколькими метками, и я пытаюсь определить точность моей модели.
Моя модель:
NUM_CLASSES = 361
x = tf.placeholder(tf.float32, [None, IMAGE_PIXELS])
y_ = tf.placeholder(tf.float32, [None, NUM_CLASSES])
# create the network
pred = conv_net( x )
# loss
cost = tf.reduce_mean( tf.nn.sigmoid_cross_entropy_with_logits( pred, y_) )
# train step
train_step = tf.train.AdamOptimizer().minimize( cost )
Я хочу рассчитать точность двумя разными способами
-% всех меток, которые были предсказаны правильно -% изображений, где ВСЕ метки отображаются правильно
к сожалению, я могу только вычислить% всех меток, которые были предсказаны правильно.
Я думал, что этот код будет вычислять% изображений, где ВСЕ метки будут предсказаны правильно
correct_prediction = tf.equal( tf.round( pred ), tf.round( y_ ) )
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
и этот код% всех меток, которые предсказываются правильно
pred_reshape = tf.reshape( pred, [ BATCH_SIZE * NUM_CLASSES, 1 ] )
y_reshape = tf.reshape( y_, [ BATCH_SIZE * NUM_CLASSES, 1 ] )
correct_prediction_all = tf.equal( tf.round( pred_reshape ), tf.round( y_reshape ) )
accuracy_all = tf.reduce_mean( tf.cast(correct_prediction_all, tf.float32 ) )
так или иначе согласованность ярлыков, принадлежащих одному изображению, теряется, и я не уверен, почему.