월간 데이콘 운동 동작 분류 AI 경진대회

알고리즘 | 정형 | 분류 | 헬스 | LogLoss

  • moneyIcon Prize : 100만원
  • 1,261명 마감

 

수상제외 / Transformer

2021.02.23 16:35 11,332 Views language

텐서플로 트랜스포머 튜토리얼 코드를 수정하여 작성하였습니다.

점수는 랜덤시드가 고정되지 않아 0.49전후를 기록하고있습니다.

주어진 데이터를 그대로 학습 데이터로 사용하였고 증강 및 TTA, 교차검증을 활용하였습니다.

개선할 점이 아직 많이 남아있어 다른 분들 공유한 내용을 이용하여 고도화가 가능할 것으로 보입니다.

colab pro(gpu v100)에서 한시간정도 학습시간이 소요됩니다.

무료버전에서 p100을 이용하면 한시간 반정도 걸릴 것으로 생각되네요.

Code
로그인이 필요합니다
0 / 1000
팝팝
2021.02.23 16:51

갓도비.... 어떻게 하셨나 궁금했었는데 봐도 모르는 거였네요!! 트랜스포머 공부하러갑니다...ㅋㅋㅋㅋ 코드공유 감사합니다

임하식
2022.06.29 10:50

어떻게 하셨나 궁금했었는데 봐도 모르는 거였네요!! 공감 ㅋㅋㅋ

hahaha
2021.02.23 16:55

이번 대회에서 공유해주신 코드가 많이 도움이 되었습니다. 덕분에 많이 배울 수 있었습니다. 감사드립니다!

킹왕짱정혁
2021.02.23 17:28

코드 공유 감사합니다!!

윤기석
2021.02.23 17:32

갓도비........

Jay Hong
2021.02.23 18:28

갓도비... 감사합니다!!

미노이
2021.02.24 00:10

갓도비님 코드 공유 감사합니다!!

코드를 공부하던 중 궁금한 점이 있어서 질문 남겨봅니다

처음에 데이터를 (data_size, n_features, seq_len) 의 shape을 가지는 array로 만들어 주셨고 
data augmentation을 하실 때,  np.roll(x_train, i*120, axis=1) 이라고 코드가 작성이 되어 있는데요.
axis=1로 할 경우 600개의 sequence가 roll 되는 것이 아니라 6개의 features가 roll 되는 것으로 생각이 됩니다.

제 짧은 견해로는 sequence가 roll이 되어야 data augmentation의 의미가 있다고 생각이 되고,
대회 초반 공유해주신 데이터 증강 코드에서도 np.roll(x_train, axis=2)로 되어 있는데

이번 코드에서 axis=1로 써주신 것은 어떻게 이해하면 좋을지 여쭙고 싶습니다!

항상 좋은 대회을 개최해주시고 좋은 분석방법 공유해주셔서 감사드립니다 :)

DACON.Dobby
2021.02.24 07:42

안녕하세요. 
해당 함수는 from_tensor_slice가 데이터셋을 구성할 때 개별 데이터에 적용되는 함수입니다.
그래서 롤링되는 데이터의 shape은 6,600,1로 두번째 채널인 axis 1로 설정 되었습니다.

미노이
2021.02.24 09:03

아하! 제가 좀 더 꼼꼼하게 확인해보지 못했네요

친절한 답변 감사드립니다!

DACON.NPC
2021.02.25 11:37

감사합니다!

우왕여긴어디일까요
2021.09.18 00:03

갓도비님 코드 공유 감사합니다~
코드 공부하던 도중 궁금한 점이 있어 질문 남겨봅니다
데이터 shape은 이해가 되었는데 디코더 레이블에 0으로 셋팅하는 부분이 잘 이해가 가지 않아 여쭙고 싶습니다.
항상 좋은 대회 개최해주시고 베이스라인 코드 공유해주셔서 감사드립니다 ;)

DACON.Dobby
2021.09.02 13:25

안녕하세요. 우왕여긴어디일까요님
시작에 0을 붙인것은 기존 transformer 디코더 인풋과 같이 시작값을 지정해주기 위해 추가하였습니다.
tensorflow로 multi gpu 사용법은 아직 사용해본적이 없어서 바로 답변 드리기는 어려울 듯하네요.
감사합니다.

우왕여긴어디일까요
2021.09.10 14:37

방금 multi gpu 사용법 해결했습니다~ 감사합니다~

🇰🇷🇹🇼🇳🇮🇬🇺🇳🇫
2021.09.16 11:39

감사합니다!

임하식
2022.07.05 09:13

EncoderLayer가 주석처리 되어있는데 사용되는건가요?

임하식
2022.07.05 16:24

maximum_position_encoding의 역할이 어떤건지 궁금합니다.