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

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

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

 

[Sample Baseline] Resnet50 + LSTM

2022.01.03 18:41 7,542 Views language

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

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

이번 코드는 선공개된 샘플 데이터에 대해
데이터를 살펴보고 간단한 모델 학습과 검증 절차를 담고 있습니다.

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

감사합니다. 
데이콘 드림

Code
로그인이 필요합니다
0 / 1000
상드래곤
2022.01.05 13:47

질문이 있습니다.
class CustomDataset(Dataset): 에 
csv_feature_dict와 label_encoder는 정의해줘야하지 않나요?

hahaha
2022.01.05 13:56

깔끔한 코드를 위해서 말씀하신 것처럼 쓸 수도 있지만,
베이스 라인 코드처럼 전역 변수로 설정하는 것도 문제는 없어 보입니다.

ingbeeeded
2022.01.07 22:23

self.max_len = -1 * 24*6
csv_feature = df[self.csv_feature_dict.keys()].to_numpy()[self.max_len:].T

이 부분의 의미가 정확히 무엇인가요?

pidy
2022.01.08 10:39

아시겠지만 csv 데이터의 입력이 시계열 형태입니다. 
마지막 하루치의 데이터를 가져오고자 10분 단위로 관측된 데이터 입력으로부터
24*6 개 만큼의 시계열 데이터를 로드하여 하루 단위로 각 텐서에 담고자 함인듯 해요.
x[-1*24*6:]는 마지막 24*6 개의 데이터니까요.

ingbeeeded
2022.01.10 12:53

감사합니다 ㅎㅎ

그러면 혹시  24*6 개를 더 늘리면 좋은 성능을 기대할 수 있는 부분인가요?

thingsu
2022.01.08 23:26

seq length이 모델의 parameter로 고정된다는 것이 좀 이상하게 느껴져 문의드립니다. 
Pytorch lstm 문서를 보니, input size = (B, L, F) -> output size = (B,L,E) 입니다. 
(B : batch size, L : seq length, F : input size(feature의 갯수), E : embedding size)
RNN decoder class의 
self.lstm = nn.LSTM(max_len, embedding_dim)이
--> self.lstm = nn.LSTM(num_features, embedding_dim) 로 수정 되고 
나머지 모델의 parameter도 같이 수정되어야할 것 같은데 혹시 맞는지 확인 부탁드립니다. (혹시 아니라면 죄송합니다...)

ingbeeeded
2022.01.12 23:20

삭제된 댓글입니다

ingbeeeded
2022.01.13 00:03

csv_feature를 .T로 transpose를 해서 LSTM 인자값은 저게 맞긴 합니다
다만 .T를 한 이유가 저도 정확히는 뭔지 몰라서 아래 남겼네요 ㅎㅎ

클로드섀넌
2022.01.30 15:54

Feature가 9개고, Length 가 24*6 인데

baseline 에서는 Transpose 를 통해 24*6을 Feature 로 활용한 것 같아요

이렇게 하면 학습이 안될 것 같은데 잘 되는게 의아하네요

솔라나
2022.01.12 19:06

코드 공유 감사합니다.

ingbeeeded
2022.01.12 23:48

csv_feature = df[self.csv_feature_dict.keys()].to_numpy()[self.max_len:].T
이 코드에서 .T를 한 특별한 이유가 있나요?

코딩하는미토
2022.01.17 16:30

감사합니다 큰 도움이 되었습니다

준영에몽
2022.01.17 17:42

코드 공유 감사합니다.
학습 마지막 구역 실행시
RuntimeError: DataLoader worker (pid(s) 3216, 20512, 7524, 21132, 18744, 19952, 10600, 14616, 2564, 9056, 14152, 13132) exited unexpectedly
오류가 계속 발생하는데 해결 방법을 여쭤봐도 될까요?

train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, num_workers=12, shuffle=True)
val_dataloader = torch.utils.data.DataLoader(val_dataset, batch_size=batch_size, num_workers=12, shuffle=False)

num_workers=0으로 바꾸면, 아래와 같은 오류가 발생합니다.
FileNotFoundError: [Errno 2] No such file or directory: 'sample_data\\10186/sample_data\\10186.csv'

정고양이소릴내봐먐먐ㅁ먀먀
2022.01.23 19:30

코드 공유 감사합니다!

그러나 max_arr과 temp_arr 모두 숫자인 것으로 확인되는데 왜 이런 오류가 뜨는지 모르겠습니다ㅜㅜ

Traceback (most recent call last):

  File "C:\data\disease.py", line 73, in <module>
    max_arr = np.max([max_arr,temp_max], axis=0)

  File "<__array_function__ internals>", line 6, in amax

  File "C:\Users\aaa\anaconda3\envs\aip\lib\site-packages\numpy\core\fromnumeric.py", line 2734, in amax
    keepdims=keepdims, initial=initial, where=where)

  File "C:\Users\aaa\anaconda3\envs\aip\lib\site-packages\numpy\core\fromnumeric.py", line 87, in _wrapreduction
    return ufunc.reduce(obj, axis, dtype, out, **passkwargs)

TypeError: '>=' not supported between instances of 'float' and 'str'

무엇이 문제일까요,,? 데이터 타입을 바꾸어 주려고 해도 잘 되지 않습니다..

정고양이소릴내봐먐먐ㅁ먀먀
2022.01.23 20:48

중간에 [18.6 18.7 18.4 92.3 92.4 92.1 11.  '11.7' '10.2'] 이런게 포함되어 있어서 처리해주었더니 NO CUDA 문제가 발생하였습니다.. 산 넘어 산이군뇨,, 

이전 글
학습에서 쓰이는 환경정보
Competition - 농업 환경 변화에 따른 작물 병해 진단 AI 경진대회
Likes 13
Views 2,791
Comments 0
2년 전
현재 글
[Sample Baseline] Resnet50 + LSTM
Competition - 농업 환경 변화에 따른 작물 병해 진단 AI 경진대회
Likes 15
Views 7,542
Comments 15
2년 전
다음 글
다음 글이 존재하지 않습니다.