Я использую стандартный способ вычисления точности:
correct_pred = tf.equal(tf.argmax(prediction, 1), tf.argmax(Y, 1))
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))
Однако большинство меток равны 0 (т. Е. Y = [1,0,0, ..]).Я хотел бы ограничить вычисление точности на этикетках.Я попробовал следующее:
correct_pred = tf.equal( tf.argmax( prediction[tf.where(Y[0]!=1)], 1) ,
tf.argmax(Y[tf.where(Y[0]!=1)], 1) )
Это не работает, так как изменяет размер тензоров:
ValueError: Shape должен иметь ранг 1, но 3 ранга для 'strided_slice_2' (op: 'StridedSlice') с входными формами: [?, 3], [1,?, 0], [1,?, 0], [1].
Как правильноделать такие вещи?