-
Notifications
You must be signed in to change notification settings - Fork 6
[Seg] Day6_0503
nureesong edited this page May 3, 2021
·
1 revision
- k-fold, TTA + pseudo labeling 이상으로 더 할 게 있을까??
- backbone: SE 말고 그냥 ResNext 계열이 좋다. (가볍게)
- Augmentation: flip. cutout 꼭 넣기!! TTA는 flip만!!!
cutMix는 효과가 있는 걸까?? - 솔루션 윤곽
공통: k-fold 앙상블 적용하기. 폴드 나누는 기준을 다르게 해서 시너지 효과 기대.
( class imbalance, object 개수 ) → 기민님 코드 참고
k-fold 한 걸 싱글모델로 치면 0.65까지 나오는 게 목표!!
제출할 때 꼭 TTA로 해보기. - 수요일부터는 앙상블 해야 함!!!
각자 잘 나온 모델 주영님께 보내드리기 (폴드별로 pt 파일 5개, config, 성능) - (다른 캠퍼) 어떻게 싱글 모델 성능이 0.64까지 나왔을까??
분명히 건드릴 게 많이 없어서 다 비슷한데... 의문이다. - 민정님의 예지몽(0.71...😲)으로 가는 로또 티켓이 무엇일까??
- 예전에 잘 나왔던 EMANet으로 다시 돌아감.
GPU 랜덤시드가 고정이 안 돼서 결과가 약간씩 달라지는데 조금 상승함.
lr 크게 주면 잘 안 나옴. resnet50보다 101이 좋은 성능 나옴.
local minimum에 빠지도록 scheduler 빼고 normalize도 빼봄.
flip. brightness 도 실험 중. - swin transformer - upernet 합칠 수 있을 듯.
https://github.com/zhanghang1989/PyTorch-Encoding/blob/master/encoding/models/sseg/upernet.py
- 폴드 나눠서 학습까지 했는데 아직 앙상블은 안 한 상태.
batch=4, stratified 5-fold로 나누고 lr만 절반으로 (lr=5*1e-5) 줄였는데,
29에폭 때 valid=0.64 → LB=0.5872
19에폭 → LB=0.5954 뭔가 이상하다...
폴드 나누기 전에 0.6203까지 나오는데 앙상블을 안해서 낮은 건가?? - train, valid batch=4 & test_loader batch_size=3 or 5.
- 폴드별로 점수 차이가 클까요??
- k-fold, resnext50_32x4d, TTA, cutout, cutmix 로 binary classification으로 실험
20, 21에폭 정도에서 보통 최고 성능이 나온다.
Resnext (SE 없는거!!) > Resnet > EfficientNet
50으로 해야 잘 나오고 101로 하면 바로 오버피팅 생김..
augmentation을 좀 빼서 성능이 올라갔는데 오버피팅은 좀 빨리 오는 듯. - randombrightness 빼니까 20에폭 안에 수렴하고 더 빠르고 성능도 더 좋음.
GridDistortion도 빼는 게 나은 거 같다. - k-fold를 할 때 클래스가 별로 없는 이미지부터 11개로 라벨링 했음.
object 개수로 하는 게 나으려나?? valid set을 잘 만지면 test set이랑 비슷해질 수 있을 것 같다. - 수달님 label smoothing 파고 계심. semantic segmentation으로 바꾸는 게 어렵다...
- 멀티 라벨링이 제발 0.71 나왔으면!!
- 앙상블할 때 제곱평균!!
- DeeplabV3Plus(resnext101, se_resnext101 _32x8d) → 5-fold 실험 중.
- DeepLabV3Plus : depth=5로 고정되어 있는게 백본 선택에 영향을 줄까??
깊은 모델을 쓰면 receptive field가 커져서 그런가??
데이터가 적은데 EfficientNet처럼 큰 모델을 쓰면 파라미터들이 국소적인 영역을 다 외워버리는 것 같다.
stride=8로 하면 경계선을 잘 잡아내서 성능은 훨씬 좋아지는데,
시간이 너무 오래 걸려서 그냥 stride=16 하는 게 낫다. - inference 코드에서 TTA 부분이 제대로 동작을 안 해서 수정 중.
for models와 TTA를 동시에 하면 안 돌아가서 수정 중.
마무리되면 pseudo-labeling 해보고 싶다. - k-fold 한 뒤에 모델별로 가중치를 약간 다르게 주는 것도 한 방법.
- WarmupRestart 하는 게 좋을 듯.
- TransUnet: https://github.com/The-AI-Summer/self-attention-cv
- ASGNet - train 이미지 반으로 나눠서 support 로 넣어줘야 함.
binary 실험 → 모델이 12개라서 GPU가 부족. 그래서 코드 수정해서 나눠서 돌리는 중.
- 서버...후... 술 땡긴다🍺
주영님 코드랑 베이스라인 코드 합치는 중.
코랩 프로 gpu도 터지고..믿을 게 못 된다. - Augmentation 실험하기
→ 백본 se_resnext50_32x4d, resnext101_16d swsl
→ 배치 4 또는 8. Adam에 weight decay 없이. 스케줄러는 고민.
→ TTA flip만!! k-fold 추가하기
→ Fast AutoAugmentation 논문 공부해보기.