텐서플로우 2.2 버전부터 Accuracy()/'acc'로 쓰는 정확도의 표현이 match → equal로 Binary Accuracy와 차이를 두었습니다.
(TF ~2.1v) Calculates how often predictions matches labels.
↓
(TF 2.2v~) Calculates how often predictions equals labels.
따라서,
- Accuracy: 정확히 일치
(얼마나 같은가; Equal) - Binary_Accuracy: 지정해둔 threshold에 따라 Accuracy를 계산
(얼마나 Match 되는가)
공식 문서에 따르면 Binary Accuracy는 default threshold가 0.5로 지정되어 있습니다.
TF 2.2 이하 버전에서 짜여진 코드를 가지고 최신 버전으로 학습시킬 때,
정확도 점수가 다른 경우 ['acc', 'binary_accuracy']를 확인해보는 것이 좋을 것 같습니다.
acc와 binary_acc의 차이를 알아볼 수 있는 예시입니다.
import tensorflow as tf
y_true = [[1], [1], [0], [0]]
y_pred = [[0.51], [1], [0.49], [0]]
print(tf.keras.metrics.Accuracy()(y_true, y_pred)) # 0.5
print(tf.keras.metrics.BinaryAccuracy()(y_true, y_pred)) # 1.0
'# Machine Learning > TensorFlow Function' 카테고리의 다른 글
tensorflow StringLookUp, 다른 함수 사용해서 구현 (0) | 2021.03.17 |
---|---|
tf.data.dataset.window 예시 (0) | 2020.04.05 |
tensorflow Loss 함수에 존재하는 from_logits란 (3) | 2020.03.06 |
tf.feature_column에 포함된 여러 함수들 (0) | 2019.05.24 |
tf.image.non_max_suppression (0) | 2019.04.16 |