class_loss에 대해서 질문 있습니다.
306
12 asked
pred_Ppred_P[:, :, 0]+ pred_P[:, :, 1]) == 1이 만족해야 하지 않나요? 아니면 probability가 아니여도 괜찮은건가요?Answer 1
0
안녕하세요~. 반갑습니다.
1. pred_P 값이 다 더하면 1이되는 확률값이 되어야하는게아닌가? 지금은 다 더하면 1이되는 제약조건이 없는것이 아닌가?
->
맞습니다. 현재는 다 더하면 1이되는 제약조건이 없어서 다 더하면 1이되는 형태로 가이드할뿐 명확하게 다 더하면 1이 되도록 제한하는 형태는 아닙니다. 어차피 prediction 시점에 class label 개수만큼의 예측값 중에서 확신의 정도가 가장 큰값을 argmax로 선택하기때문에 큰 문제가 되는 부분은 아닙니다.
2. 그리고 one-hot은 단일 label에 적용되는 것이 아닌, 전체 label에 적용해야 하는데, 인자로 사용된 label[4]은 단일 label값만 가져오는 것 같습니다. 만일 코드를 단일 class에 대한 detection이 아닌, 여러 class에 대한 detection으로 변경한다면 tf.one_hot의 전달인자가 label[4]이 아닌, label number list가 들어가야 된다구 생각하는데... 제가 이해한게 맞을까요?
->
label[4]가 전달하는 것은 클래스의 integer encoding 된 값이고, tf.one_hot API는 Integer Encoding 된 값을 num_classes크기만큼의 one-hot encoding 행렬로 자동변환해주는 형태로 동작합니다. 따라서 레이블값을 리스트로 넣을 필요는 없습니다. P = tf.one_hot(tf.cast(label[4], tf.int32), num_classes, dtype=tf.float32)
예를 들어, tf.one_hot(2(=label[4]), 3) -> [0 0 1] 형태로 변환해줍니다.
더자세한 내용은 아래를 참조하세요.
https://www.tensorflow.org/api_docs/python/tf/one_hot
0
one-hot 부분에 추가 질문 있습니다.
강의의 code에서 cat은 7이라는 integer값이 들어있는데,
이를 tf.one_hot(7.0(=label[4]), 1(=num_classes)) 이면 반드시 [0.] 이 출력됩니다.
이렇게 되면 학습이 진행될수록 pred_P값은 0으로 수렴하기 되지 않나요?
만일 class를 { 7: "cat", 9: "cow"} 처럼 2개를 사용하게 된다면
tf.one_hot(7.0(=label[4]), 2(=num_classes)) == [0. , 0.]
tf.one_hot(9.0(=label[4]), 2(=num_classes)) == [0. , 0.]
이렇게 출력됩니다. 이 또한 pred_P값은 0으로 수렴하게 되구요.
이 보다는
cat일땐 label을 7.0에서 0으로 변경하고 cow일땐 label을 9.0에서 1로 변경하도록 해서
tf.one_hot(0.0(=label[4]), 2(=num_classes)) == [1. , 0.]
tf.one_hot(1.0(=label[4]), 2(=num_classes)) == [0. , 1.]
이런 식으로 표현되도록 수정한다면 잘못된 방법일까요...?
0
안녕하세요~.
현재는 class가 cat 하나라서 class prediction의 의미가 없어서 해당 형태로 진행한 것이고 일반적인 상황에서는 말씀해주신대로
cat일땐 label을 7.0에서 0으로 변경하고 cow일땐 label을 9.0에서 1로 변경하도록 해서
->
말씀해주신 방법대로 진행하는게 맞습니다~.
제대로 이해하고 계신 것 같습니다~.
감사합니다.
수업자료
0
23
2
paperswithcode 서비스 종료 관련 문의
0
209
2
22강 코드 call()메서드 is_training -> model(x,False)로 호출시 밸류에러 참고
0
48
1
강의자료 질문
0
42
1
강의자료는 어떻게 보나요
0
83
2
MNS 질문
0
321
1
model.py의 Activation Function
0
532
1
코랩에서 train.py 실행 시 오류
0
721
1
object_exists_cell_i 계산식
0
448
0
데이터셋 변경에 대한 질문
0
264
0
reshape 한 후 7*7*30
0
290
1
작성한 코드의 저작권과 깃헙 업로드 가능유무에 대한 질문
0
314
1
Train시 bounding box의 개수 설정 관련
0
417
1
backbone network에 대해서 질문 있습니다.
0
290
1
one_hot과 C값에 대해서 질문 드립니다.
0
311
1
질문있어서 글 올립니다.
0
305
1
안녕하십니까 강의 잘 보고 있습니다
0
460
5
두 가지 질문 드립니다.
0
265
1
loss.py 의 loss에 사용된 tf.nn.l2_loss 에 대해서 질문 드립니다.
0
446
1
loss function 관련 질문입니다
0
240
1
loss function 관련
0
222
1
NMS 구현 관련 질문있습니다.
0
235
1
confidence가 가장 큰 값으로 IOU 비교 이후 과정에 대해
0
359
1
confidence <= 0.6 이하의 Bounding Box 제거에서 confidence는 class probability가 곱해진 값인지요?
0
330
3

