Guest User

Untitled

a guest
Dec 11th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. labels = ["dog", "mammal", "cat", "fish", "rock"] #I have more
  2. interesting_id = [0]*len(labels)
  3. interesting_id[labels.index("rock")] = 1 #we only care about rock's accuracy
  4. def single_class_accuracy(interesting_class_id):
  5. def single(y_true, y_pred):
  6. class_id_true = K.argmax(y_true, axis=-1)
  7. class_id_preds = K.argmax(y_pred, axis=-1)
  8. # Replace class_id_preds with class_id_true for recall here
  9. accuracy_mask = K.cast(K.equal(class_id_preds, interesting_class_id), 'float32')
  10. class_acc_tensor = K.cast(K.equal(class_id_true, class_id_preds), 'float32') * accuracy_mask
  11. class_acc = K.sum(class_acc_tensor) / K.maximum(K.sum(accuracy_mask), 1)
  12. return class_acc
  13. return single
  14.  
  15. model.compile(optimizer=SGD(lr=0.0001, momentum=0.9),
  16. loss='binary_crossentropy', metrics=[metrics.binary_accuracy,
  17. single_class_accuracy(interesting_id)])
Add Comment
Please, Sign In to add comment