[오늘의 일지]
프로젝트 - 모델 완성, 학습 결과
[상세 내용]
모델 완성
- 어제까지 1차 모델에서 머물러 있었던 모델이 어느 정도 막혔던 부분이 해결이 되면서 전체적으로 모델 학습을 거친 후에 결과를 지켜보게 되었습니다.
1차 모델 성능 저하 해결
- 1차 모델이 사고와 비사고를 분류하지 못했던 가장 큰 이유를 찾게 되었습니다. 이유는 비사고 데이터 없이 사고 데이터로만 학습을 해서 비사고와 사고 데이터가 섞여있는 test 데이터에서는 효과가 없었던 것으로 확인이 되었습니다.
기본 코드 형태
- 저희 조 모델의 큰 틀은 Efficientnet이었습니다. pre-trained 된 모델을 불러왔고 학습도 생각보다 잘 되는 것으로 보였습니다.
# efficientnet architecture detail handling
class Efficientnet(nn.Module):
def __init__(self):
super().__init__()
self._conv_stem = efficientnet_b0_pretrained._conv_stem
self._bn0 = efficientnet_b0_pretrained._bn0
self._blocks = efficientnet_b0_pretrained._blocks
self._conv_head = efficientnet_b0_pretrained._conv_head
self._bn1 = efficientnet_b0_pretrained._bn1
self._avg_pooling = efficientnet_b0_pretrained._avg_pooling
self._dropout = efficientnet_b0_pretrained._dropout
def forward(self, x):
x = self._conv_stem(x)
x = self._bn0(x)
for block in self._blocks:
x = block(x)
x = self._conv_head(x)
x = self._bn1(x)
x = self._avg_pooling(x)
x = self._dropout(x)
x = x.flatten(start_dim=1)
return x
class Model(nn.Module):
def __init__(self):
super().__init__()
self.efficientnet = Efficientnet()
self.flatten = nn.Flatten()
self.fc1 = nn.Linear(1280, 1)
self.sig = nn.Sigmoid()
def forward(self, x):
x = self.efficientnet(x)
x = self.fc1(x)
x = self.sig(x)
return x
학습 결과
- 어제 리뷰했던 베이스라인 코드보다도 더 좋은 0.38이라는 결과를 얻었는데 저희 조가 처음 설정했던 0.55라는 점수에 근접하기 위해서 마지막 남은 하루를 어떻게든 잘 활용하면 좋을 거 같습니다.
[마무리]
드디어 학습을 마치고 어느 정도 성과가 있을만한 결과가 나왔습니다. 시간이 부족한 상황에서 마지막이니까 모든 조원들이 학습에만 모여서 다 같이 작업을 했기 때문에 진전이 있었던 거 같습니다. 프로젝트를 여러 번 거치면서 느끼는 거지만 혼자서는 절대 정해진 시간에 할 수 없는 것들도 많다는 것을 다시 한번 깨닫게 되는 것 같습니다.
반응형
'AI > AI 부트캠프' 카테고리의 다른 글
[AI 부트캠프] DAY 109 - CV 프로젝트 10 (0) | 2023.12.24 |
---|---|
[AI 부트캠프] DAY 108 - CV 프로젝트 9 (1) | 2023.12.22 |
[AI 부트캠프] DAY 106 - CV 프로젝트 7 (0) | 2023.12.20 |
[AI 부트캠프] DAY 105 - CV 프로젝트 6 (1) | 2023.12.19 |
[AI 부트캠프] DAY 104 - CV 프로젝트 5 (0) | 2023.12.16 |
댓글