13
我正在研究多標籤問題,並試圖確定我的模型的準確性。Tensorflow,多標籤準確性計算
我的模型:
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))
莫名其妙標籤的一致性所有標籤的這段代碼%這個代碼將計算出的圖像%屬於一個圖像丟失,我不知道爲什麼。
由於用得好好的,難道我理解正確的是reduce_min包一個圖像的所有標籤一起? – MaMiFreak
這將對批次中的每個元素採用correct_prediction的最小值。如果所有的元素都是1(即所有的預測都是正確的),那麼這個最小值爲1,如果至少有一個元素是假的(並且等於0),那麼這個最小值爲1 –
我試過這種方法,但是對於每個時期我都得到相同的準確度值:準確度:0.984375測試準確度:0.984375'。任何想法爲什麼發生這種情況https://stackoverflow.com/questions/49210520/cant-get-correct-acccuracy-for-multi-label-prediction – Peterdk