인프런 커뮤니티 질문&답변

hibernation님의 프로필 이미지
hibernation

작성한 질문수

YOLO 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0

one_hot과 C값에 대해서 질문 드립니다.

작성

·

243

0

loss_function에서 label값으로 사용되는 Ptf.one_hot이 적용되는데,

이 때 tf.one_hot의 첫 번째 argument는 모든 label class가 할당되어야 하지 않나요?

code에서 label[4]는 특정 단일 class의 label number값을 가지고 있어 반환값이 항상 [0, 0] 으로 나옵니다.

만일 class가 1개가 아니라 2개..또는 3개라면

num_class가 2일 때 P 의 값은 [0, 1] 또는 [1, 0]의 값이,

num_class가 3일 때 P 의 값은 [0, 0, 1] 또는 [0, 1, 0] 또는 [1, 0, 0]의 값이 사용되어야 한다고 생각하는데 맞을까요?

C값에는 IOU값을 주셨는데, 결국 C값은 object loss가 계산되는 과정에서 best box mask가 1인 cell의 위치에서만 사용이 될 것이고(나머지는 0의 값이기 때문), 해당 cell의 C값은 1이기 때문으로 이해해도 괜찮을까요?

만약 제가 이해한 것이 맞다면, C = 1을 할당해도 괜찮다고 봐도 될까요?

답변 1

0

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.

1. num_class가 3일 때 P 의 값은 [0, 0, 1] 또는 [0, 1, 0] 또는 [1, 0, 0]의 값이 사용되어야 한다고 생각하는데 맞을까요?

->

맞습니다.

2. C값을 iou로 준 것은 YOLO 논문에서 C를 iou값으로 지정한다라고 제안해서 입니다. C는 오브젝트가 있을거라고 생각되는 확신의 정도이고, 정답은 항상 오브젝트가 100% 있는것이니까 C=1로 지정하는 다른 논문들도 있습니다.

감사합니다.

hibernation님의 프로필 이미지
hibernation

작성한 질문수

질문하기