치즈의 AI 녹이기

nn.Embedding sparse 파라미터 본문

인공지능 대학원생의 생활/동료 코드 따라잡기

nn.Embedding sparse 파라미터

개발자 치즈 2021. 6. 25. 15:22

오늘 가져온 것은 Embedding 클래스입니다. 

제가 작성한 초록 주석을 참고해주세요

위 코드에서 제가 주목한 점은 nn.Embedding으로 self.emb 변수를 초기화하는 46번 줄의 코드입니다. 

sparse argument를 사용하고 있어 이에 대해 구글링 해보았습니다. 

 

해당 동영상을 참고하여 sparse = False일 때와 True일때를 비교해 보면, 

위 코드를 작성해서 나온 결과,

sparse = False

처음에 10 x 10으로 초기화했던 embedding의 매개변수들의 변화도(gradient)값입니다. 

 

이번엔 sparse=True로 두었을 때 결과값을 보겠습니다. 

sparse = True

즉, 변화도에서 0이 아닌 것만 weight 업데이트 되도록 해줍니다. 

memory 절약에 도움이 될것 같습니다.

 

Embedding 코드의 출처는 앞선 글에서 언급하였습니다.