본문 바로가기

전체

(155)
[PyTorch] AttributeError: 'str' object has no attribute '_apply' 해결 net = net.to(self.device) File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1145, in to return self._apply(convert) AttributeError: 'str' object has no attribute '_apply' 이 오류가 난 원인은 모델 정의할 때, model.py에서 net = ResNet 그리고 main.py에서 net = net.to(self.device) 이렇게 해버렸다. net = ResNet -> net = ResNet() 이렇게 바꾸니 해결! class를 정의해야되는데 str을 정의해버린 어처구니없는 실수.. string에 net.to(self.d..
np.savez_compressed로 np.array 여러개 한번에 저장 np.savez_compressed() import numpy as np mu = np.array([0.5, 0.5]) sigma = np.array([0.5, 0.5]) np.savez_compressed(paths[1], mu=mu, sigma=sigma) np.load() with np.load(path) as f: m, s = f['mu'][:], f['sigma'][:]
[PyTorch] 코드 재현성(reproducibility)을 위한 랜덤시드 설정 Neural network의 초기값은 랜덤임으로 실험마다 성능차이가 생길 수 있다. 어느정도 성능을 보장하기 위해 랜덤시드를 고정해두는 것은 필수이다. 매번 뒤적뒤적 찾기 귀찮아서 박제해놓기! (**seed를 고정해도 패키지 버전이 같지 않으면 성능이 천차만별이므로 꼭꼭 버전을 모두 맞추도록 하자.) def seed_all(seed): os.environ['PYTHONHASHSEED'] = str(seed) random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) # if you are using multi-GPU. torch.backend..
잘해라 우리 팀장님이 하는 말이랑 똑같아서 소름이다..!!! 시간 많이 쓰지 말고, 노력하지 말고, 잘해라!!!! 이렇게만 된다면 얼마나 좋아
Self-supervised learning (자기지도학습)과 Contrastive learning (대조학습): 개념과 방법론 톺아보기 ** 본 포스팅은 NeurIPS2021의 self-supervised learning 튜토리얼에 필자의 소소한 설명을 덧붙인 글입니다. Supervision을 위한 대량의 labelled data 특히 high-quality의 labelled data를 얻는 것은 비용이 많이 든다. unlabelled dataset만으로 task-agnostic하게 데이터를 잘 표현하는 '좋은 representation'을 얻으면 얼마나 좋을까? "unsupervised learning을 통해 좋은 representation을 얻는다면 다양한 downstream task에 빠르게 적응할 수 있을 것이다, 더 나아가서는 supervision보다 더 좋은 성능을 얻을 수 있을 것이다" 라는 생각에서 self-supervis..
Stochastic Differential Equation (SDE) 자료 공유
[PyTorch] PyTorch가 제공하는 Activation function(활성화함수) 정리 딥러닝 모델을 구축할 때, linear layer, convolution layer 등의 연산 layer뒤에 당연스럽게 activation function을 사용하는 것을 볼 수 있다. activation을 쓰지 않으면 layer를 계속 쌓아도 결국 하나의 layer를 쌓은 것과 다르지 않기 때문에 deep learning에서 activation은 중요한 역할을 한다. 현재 딥러닝 모델은 점점 더 커지고 깊어지고 있기 때문에 activation function은 더 깊은 모델을 잘 학습시킬 수 있게 gradient vanishing 문제를 극복하도록 발전하고 있다. 본 포스팅에서는 먼저 activation function이 무엇인지 간단히 설명하고 상황별 activation 사용법에 대해 요약한 뒤 Py..
연말 올해는 개인적으로 대격변의 시기였습니다. 게임으로 치면 유난히 안 깨지던 어떤 스테이지를 깨고 다음 스테이지로 올라간듯한 느낌. 운이라고 할 수도 있겠고 깨고자 하는 어떤 열망 때문이라고도 할 수 있겠습니다. 돌아보면 의도하든 의도하지 않았든 새로운 것들을 받아들이느라 정신없이 보냈던 것 같습니다. 방향성이 있다기보단 마구잡이로 했던 것들이 아쉽기도 하지만 Trial and Error를 거쳤다고 보기로 했습니다. 남은 12월은 새롭게 등장한 이번 스테이지를 깨기 위해(?) 방향과 전략을 세우려고 합니다. 게임을 못하는 저는 걱정이 참 많이 되는데요, 즐기는 자를 이길 사람은 없다고 즐겨보겠습니다. 내년엔 어떤 일이 펼쳐질지 기대가 됩니다. 저는 언제나 애정어린 마음으로 저를 응원하려고 합니다.