반응형
Contents 1. Dataset and Dataloader 기초 1.1 내장된 데이터세트 로딩 1.2 내장된 데이터세트 시각화 1.3 Dataloader에 전달 2. Custom Dataset 2.1 Dataset 구성요소 2.2 Yelp 데이터를 이용하여 커스텀 데이터셋 만들기 1. Dataset and Dataloader 기초 PyTorch는 모델에 데이터를 입력하기 위해, torch.utils.data.Dataloader와 torch.utils.data.Dataset를 사용한다. 이때, 내장된 dataset 뿐만 아니라, custom dataset도 사용 가능하다. - Dataset은 데이터의 샘플과 label을 저장한다. - Dataloader는 데이터세트를 미니배치 단위로 iterable 객..
전체 프로젝트 구조 data/ experiments/ model/ net.py data_loader.py train.py evaluate.py search_hyperparams.py synthesize_results.py evaluate.py utils.py model / net.py: 뉴럴 네트워크, loss function, evaluation metrics를 지정 model / data_loader.py: 네트워크에 데이터를 feeding train.py: 메인 training loop evaluate.py: 메인 evaluation loop utils.py: hyperparams / logging / storingmodel 하는 유틸리티 함수 Custom Model 구조 nn.Module을 상속받..
텐서보드는 딥러닝 학습시 시각화를 돕는 도구이다. colab 환경에서Tensorboard를 구현 하는 방법을 살펴보겠다. 공식 문서: https://tutorials.pytorch.kr/recipes/recipes/tensorboard_with_pytorch.html import torch from tensorboardX import SummaryWriter writer = SummaryWriter() 먼저 tensorboardX의 SummaryWriter()를 불러온다. x = torch.arange(-5, 5, 0.1).view(-1, 1) y = -5 * x + 0.1 * torch.randn(x.size()) model = torch.nn.Linear(1, 1) criterion = torch.n..
딥러닝 모델 학습시 가중치를 초기화하고, 예측값과 실제 값의 차이를 loss function을 통해 구한다. 이후 loss를 줄이는 방향으로 가중치를 업데이트를 하게 된다. 결국 모델이 학습하는 대상은 optimal한 가중치이다. 첫 가중치는 랜덤한 수로 초기화 된다. 이때 초기화 되는 가중치 값이 모델 성능에 영향을 미친다. 아래 그림은 가중치 초기값에 따라 학습의 진행 방향이 달라지는 모습을 보여준다. Weight Initialization은 nn.init을 통해 설정할 수 있다. 이때 bias도 따로 설정해줘야 한다. torch.nn.init.constant_(tensor, val): 상수로 설정 torch.nn.init.ones_(tensor): 1로 설정 torch.nn.init.zeros_(t..
이전에 포스팅 했던 Transformer 이론을 PyTorch 코드로 이해하기 위한 포스팅이다. 🐊 Transfomer 이론 : https://ysg2997.tistory.com/8 [DL] Transformer: Attention Is All You Need (2017) 🐊 논문 링크: https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. Advances in ..
A = torch.ones(2, 3, 4) A >>> tensor([[[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]], [[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]]) Tensor의 차원을 반환 - dim() - ndim print(A.dim()) print(A.ndim) >>> 3 3 Tensor의 크기를 반환 - shape - size() print(A.shape) print(A.shape[1]) print(A.size()) print(A.size(2)) >>> torch.Size([2, 3, 4]) 3 torch.Size([2, 3, 4]) 4 Tensor 사이즈를 변경 - view() - resh..