작성
·
377
0
강사님 안녕하세요
성능평가관련해서 질문좀 드리겟습니다 . 일반적으로 세그멘테이션은 accurary보다 mAP 혹은IOU로 평가하는걸로 아는데 그럼 아래코드 metrics = ["accurary"]를 어떻게 바꾸어야 하는지요?
바쁘시겟지만 조언 좀 부타드리겟습니다 ㅎ
unet_model.compile(optimizer = optimizer, loss = binary_loss_object, metrics = ["accurary"])
답변 1
0
안녕하세요~. 반갑습니다
먼저 답신이 늦어서 죄송합니다ㅠ.
metric을 IoU로 변경해서 측정하고 싶으실 경우 tf.keras.metrics.MeanIoU API를 사용하시면 됩니다. 아래와 같은 느낌으로 사용하시면 됩니다.
model.compile(
optimizer = optimizer,
loss = binary_loss_object,
metrics=[tf.keras.metrics.MeanIoU(num_classes=2)])
더 자세한 내용은 아래 공식 reference 문서를 참조하세요.
https://www.tensorflow.org/api_docs/python/tf/keras/metrics/MeanIoU
좋은 하루되세요~.
감사합니다.
네. 반갑습니다~. 말씀해주신 내용이 맞습니다. 다만 prediction 픽셀의 출력 결과값은 0,1 binary label 값이므로 [0,255]가 아니라 [0,1] 2개중에 하나이고 binary label 값이 일치하는 확률값입니다.
강사님 답변감사합니다. 많은 도움되엇습니다.
지금 tensorfolw2.0강의도 듣고 있습니다. 앞으로도 잘 부탁드리겟습니다.
참고로 한가지만 더 질문드리겠습니다, 강사님이 작성하신 코드에서 학습데이터예측영상이 accurary값이 90%이상 나왓는데, 이 accurary값의 의미는 train_labels이미지의 픽셀값(0,255)와 predicted 영상의 픽셀값(0, 255)의 일치하는 확률이라고 이해를 하면 되는지요? 단순한 질문이알 죄송하지만, 답변 부탁드리겟습니다