농업 환경 변화에 따른 작물 병해 진단 AI 경진대회

알고리즘 | CV | 분류 | 농작물 | Macro f1 score

  • moneyIcon Prize : 총 1,000만원
  • 1,892명 마감

 

[Baseline] ResNet50 + LSTM

2022.01.10 17:52 7,600 Views language

안녕하세요. 데이콘입니다.

데이콘 베이스라인은 모든 참가자의 '제출'을 목표로 합니다. 
해당 내용에 관한 질문은 [토크] 게시판에 게시해 주세요.

베이스라인이 여러분만의 고도화된 모델 작성에 도움이 되면 좋겠습니다.

감사합니다. 
데이콘 드림

Code
로그인이 필요합니다
0 / 1000
컴도사
2022.01.12 11:25

코드 오류가 있던데 좀 수정하셨네요. num_workers=16 이것도 core사양에 따라 다르니 체크해서 조정하시면 될듯합니다.
os.environ["CUDA_VISIBLE_DEVICES"]="0"로 안하면 gpu인식안되거나 하니 체크해보시고요. pytorch버전에 맞춰서 cudatoolkit설치하셔야 합니다. 그리고, 아무래도 작업하시는 분들 cpu사양이 낮을수 있으니 체크해보시고요. gpu낮으시면 cpu로 하시면 오래 걸릴 수 있습니다*한번 돌리는데 몇십분이상 걸리면 한번 해보시고 다른 알고리즘으로 테스트해보야하할듯하네요). 참고 되셨으면 합니다.

herok97
2022.01.12 11:49

training loss보다 validation loss가 더 잘 수렴하는 것이 좀 이상하네요?
보통 data augmentation을 심하게 하면 그럴 수 있는거로 아는데, 위의 코드에선 그렇지 않은 것 같아서요. 
특별한 이유가 있을까요?

황윤태호랑이
2022.01.12 21:35

validation f1 print하는 부분이 잘못된것같아요 

herok97
2022.01.12 22:11

어떤 부분이 잘못된건가요? 제가 볼 때는 그렇지 않은 것 같아서요 ㅠㅠ

코딩하는미토
2022.02.04 16:04

그러게요 validation set 이 유독 쉬워서 그런걸까요 epoch 가 끝나고 계산되서 그런걸까요

컴도사
2022.01.12 12:26

    def __getitem__(self, i):
        file = self.files[i]
        file_name = file.split('/')[-1]

위의 코드에서 windows에서 하실경우는 
    def __getitem__(self, i):
        file = self.files[i]
        file_name = file.split('\\')[-1] <- 변경해주세요.
제가 윈도우즈를 쓰는데 인식이 안되는 경우가 경로를 잘인식못하네요. 도움이 되셨기를 바랍니다.

컴도사
2022.01.12 12:38

저는 집에 컴사양이 1060 5GB인데, gpu 메모리 부족이네요. ㅎㅎ;; 아무래도 colab을 사용하시거나 batch_size를 줄이려서 처리하셔야할듯함. 여전히 gpu옵션을 조절해도 안되네요. cpu로 돌리면 꽤 시간 많이 걸릴듯. 장비 좋은거 있으심 무지 편하실듯 예상했던 바로는요. ㅎㅎ;;; cpu(i5-8500), memory(48GB)로 돌리는데, 기존 수정하지 않은 코드로 cpu 100%, memory 70%이상 소모되네요. 이거 한달 돌리면 전기세 얼마나 나올지 모르겠네요.ㅎㅎ;; 
참고, batch_size를 조절해서 하시면 되는데. score가 조금 차이 날듯한데요. ㅎㅎ 아무튼 화이팅하세요. (컴사양에 맞춰서 해보시면 도움되실듯함)

10duck
2022.01.12 17:10

가이드라인 그대로 사용했는데 GPU 20기가 사용하네요;;; 배치사이즈와 임베딩 크기 모두 조절하셔야 할것같아요 ㅜㅜ

컴도사
2022.01.12 18:14

batch_size를 조절하면 빨라지기는해도 아마 사양이 rtx 3080이면몰라도 다른건 한번 돌리는데 꽤 시간 걸리실듯. 전처리단계에서 필터를써서 조절을 하거나 하이퍼파라미터를 조절해서 좋아질듯합니다. 그러나 실행해서 결과가 나와야..ㅎㅎ; 저처럼 사양 낮으시면 고려해보세요. 대회 사양에서 제공하는 사양으로는 데이콘측에서 나온 소요시간으로 처리될듯합니다. ResNet다른 버전으로 해보셔도되는데. 저는 뭐..ㅎㅎ;; 엄두가 안남. 일단 전 가지고 있는 맥을쓰던지 colab으로 돌려봐야겠군요.ㅎㅎ rnn+lstm을 적용하시는 방법도 한방법인것같네요. 잠담이었습니다.

컴도사
2022.01.12 18:09

baseline처리 결과 사양 cpu(i5-8000), memory(48GB) 결과입니다.
19it [18:55, 59.78s/it, Epoch=1, Loss=1.470622, Mean Loss=1.740515, Mean F-1=0.326032]
5it [01:47, 21.52s/it, Epoch=1, Val Loss=0.529613, Mean Val Loss=0.597850, Mean Val F-1=0.558628]
19it [18:30, 58.44s/it, Epoch=2, Loss=1.052796, Mean Loss=0.735749, Mean F-1=0.636917]
5it [01:31, 18.37s/it, Epoch=2, Val Loss=0.256121, Mean Val Loss=0.306970, Mean Val F-1=0.725458]
19it [18:35, 58.69s/it, Epoch=3, Loss=0.698897, Mean Loss=0.487699, Mean F-1=0.746432]
5it [01:34, 18.95s/it, Epoch=3, Val Loss=0.236314, Mean Val Loss=0.256907, Mean Val F-1=0.734408]
19it [17:53, 56.52s/it, Epoch=4, Loss=0.666177, Mean Loss=0.435521, Mean F-1=0.693602]
5it [01:26, 17.23s/it, Epoch=4, Val Loss=0.218536, Mean Val Loss=0.235325, Mean Val F-1=0.783649]
19it [17:18, 54.65s/it, Epoch=5, Loss=0.085453, Mean Loss=0.286276, Mean F-1=0.660936]
5it [01:32, 18.46s/it, Epoch=5, Val Loss=0.174459, Mean Val Loss=0.173180, Mean Val F-1=0.852264]

컴도사
2022.01.12 18:15

19it [18:32, 58.56s/it, Epoch=6, Loss=0.630348, Mean Loss=0.304510, Mean F-1=0.612567]
5it [01:34, 18.92s/it, Epoch=6, Val Loss=0.127959, Mean Val Loss=0.165077, Mean Val F-1=0.871256]
19it [18:32, 58.55s/it, Epoch=7, Loss=0.571989, Mean Loss=0.333788, Mean F-1=0.677421]
5it [01:31, 18.35s/it, Epoch=7, Val Loss=0.209829, Mean Val Loss=0.245588, Mean Val F-1=0.848735]
19it [18:13, 57.53s/it, Epoch=8, Loss=0.295525, Mean Loss=0.322870, Mean F-1=0.658374]
5it [01:33, 18.66s/it, Epoch=8, Val Loss=0.335876, Mean Val Loss=0.309332, Mean Val F-1=0.824422]
19it [18:23, 58.08s/it, Epoch=9, Loss=2.699222, Mean Loss=0.491539, Mean F-1=0.586241]
5it [01:32, 18.55s/it, Epoch=9, Val Loss=0.196462, Mean Val Loss=0.218719, Mean Val F-1=0.842658]
19it [18:20, 57.92s/it, Epoch=10, Loss=0.131361, Mean Loss=0.344505, Mean F-1=0.682157]
5it [01:32, 18.46s/it, Epoch=10, Val Loss=0.159307, Mean Val Loss=0.219544, Mean Val F-1=0.836044]
소요시간 : 대략 11934.0520610809 입니다.  (단지 학습시간만 포함입니다. test셋트로 predict은 제외)

솔라나
2022.01.12 19:05

코드 공유 감사합니다.

용사
2022.01.15 20:41

코드 공유 감사합니다. 언제쯤 베이스라인이 다 이해될까요. 아. 

코딩하는미토
2022.02.04 12:44

RuntimeError: CUDA out of memory.  저도 gpu 메모리가 부족한거 같은데 베치사이즈 몇으로 조절해서 진행하셨나요?ㅜㅜ