본문 바로가기

Naver AI Boost Camp/캠퍼 기록

[P stage] 오늘의 회고 : 생각한 걸 많이 실행한 하루

반응형

 

 

안녕하세요~!

27년차 진로탐색꾼 조녁입니다.

 

자야되는데 또 이 시간에야 회고를 쓰는 제 모습을 회고합니다 ..

하지만 몰입하다보면 시간이 많이 부족해서 어쩌다보니 이 시간이 되었네요 ,, 

그래도 오늘은 생각도 이것저것 많이해볼 수 있었고, 그만큼 많이 구현해봐서 좋았습니다. (오류도 이겨내보고! 디버거도 써보고!)

 

몸은 힘들지만 그래도 즐거운 하루였는데 제발 내일 눈떴을 때 돌려놓은 모델이 잘 나왔으면 좋겠다..

 

1. 오늘 시도한 것들 & 깨달은 것들

- 얼굴 facenet 으로 Crop 해보기 => padding을 줘서 crop해야 머리카락이 나온다!! 

- 실험결과 정리 및 되돌아보기

  • resize 크기는 pretrained model 에서 사용한 이미지 사이즈를 고려해서 정하기
  • Cutmix할 때는 기존 데이터에 손대면 과대적합이 심해짐 => age label 기준(58 to 60 재조정) , Aug 간소화(normalize,color 등 뺌) 
  • 데이터셋(train,val,test) 증강 구별하여 잘 되고 있는 지 → 이상 없었음.

- Batch size 줄이고 , 학습률(lr) 줄이기 -> AI RUSH 때 마지막에 짜낼 때 했었음.

-  focal loss 대신 f1 loss 사용해보기 (cutmix , crop으로 어느정도 데이터 일반화했으니 f1 score에 집중)

- f1 score 표시하기 (진작했어야하는데..)

 

 

2. 오늘 만난 오류들 & 해결법

1) 이미지 Crop하여 사용하려 하는데 아래 에러 발생

“RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0”

-> 이미지 읽어올 때, RGB 세개 값만 읽어오도록 설정하여 해결!

def read_image(self, index):
        image_path = self.image_paths[index]
        return Image.open(image_path).convert('RGB') #convert 추가

-> 새로운 에러 발생, torch util의 데이터로더에서 에러남 

RuntimeError: DataLoader worker (pid(s) 1022) exited unexpectedly

-> github 커뮤니티 이야기 듣고 data loader(num_worker =0)으로 변경함 (해결) , 다만 너무 느리다면 메모리가 허용되는 만큼 num_worker 늘려보기

 

2) f1 loss 추가하다가 만난 에러

RuntimeError: Class values must be smaller than num_classes.

-> f1 loss git hub 커뮤니티, pytorch 토론하는데 다 들어가보다가 그냥 에디터에서 네비게이터 타고 가보니까 모델에서 num_classes가 18이라 맞춰서 변경해줌. (해결)

 

 

3. 내일 해볼만한 것들

- k-fold로 나눠서 학습하기

- 결과 시각화해보기(confusion matrix , image)

 

 

4. 회고 : 생각도 많이하고 생각한 걸 실행(하다 오류도 많이 만나고)한 하루

개인적으로 뿌듯한 하루를 보냈다. 비록, 오늘 밥도 제대로 못챙겨먹고 샤워도 못했지만, 

뿌듯한 하루였다. 지금까진 실행에 옮기기엔 오류도 너무 무섭고 파이토치가 너무 낯설었는데, 조금은 익숙해진 기분이다.

부끄러운 말이지만, 주로 Colab이나 쥬피터환경에서 코딩하다보니 에디터에 대해 무지했다. 그런데 부캠을 하면서 되게 많이 배우게 되는 것 같다. 지난 주 금요일 오피스 아워때 에디터의 힘을 처음 느꼈는데, 그 이후로 이것저것(디버거, 네비게이션 등) 사용해보면서 확실히 Colab보다 에디터가 더 편하구나를 많이 느꼈다! 그리고 이러한 기능들이 에러앞에서 좀더 자신감을 불어넣어준다! 

 

 

오늘의 피드백

+) 오류 만났을 때 찾아보고 해결한 것, 피어세션 때 주도적으로 의견내되 한곳으로 쏠리지 않도록 한것, 지금까지 적용해본 것들 회고한 것

-) 늦게자서 내일 컨디션에 영향 주는 것 , 쉴 떄 제대로 안쉬고 유튜브 본 것

 

반응형