파이토치7 Pytorch 8 : Train과 Test 오늘은 모델을 학습하고 평가하는 코드를 살펴보고자 한다. import torch import torchvision from torch.utils.data import DataLoader from torchvision import transforms from torchvision.datasets import CIFAR10, CIFAR100 우선, 이미지 데이터를 활용해서 CNN 계열의 모델을 학습하는 상황을 가정해보자. 이미지 데이터는 많이 사용되고 있는 CIFAR 이미지를 사용한다고 가정하자. (10은 10개의 클래스, 100은 100개의 클래스를 분류하기 위한 데이터셋이다) 그러면 먼저 이미지 데이터를 텐서로 변환하고, 사이즈를 조절해주는 등의 전처리 작업을 거쳐야 한다. 이 부분은 다음과 같은 pyt.. 2023. 7. 26. Pytorch 7 : Tensor 심화 여러 번 이야기하였듯이 딥러닝에서 데이터와 모델 파라미터, 모델의 결괏값 모든 것은 텐서로 이뤄져 있다. 텐서는 결국 다차원 배열로 각 성분들은 부동소수점 수로 이뤄져 있다. 이번 글에서는 텐서에 대해 조금 더 깊게 들어가보고자 한다. 제목에 '심화'라고 써있지만 파이토치를 잘 다루기 위해서는 이 글에서 다루는 내용은 알고 있어야 한다. 파이토치는 상당히 파이썬스러운 프레임워크이지만 텐서는 파이썬 객체가 아니다. 오히려 C언어의 배열에 더 가깝다. 즉, 텐서의 각 성분은 메모리 할당이 "연속적으로" 이뤄지고 이에 대한 view를 제공하는 것이다. 여기서 각 성분들은 float32가 default이다. float 32는 메모리를 32bit (4 byte) 차지하므로 100만 개의 float32 타입의 1차.. 2023. 7. 23. Pytorch 6 : Implement CNN 오늘은 대표적인 CNN인 ResNet을 구현해보도록 하자. ResNet은 마이크로소프트에서 개발한 모델로 'Deep Residual learning for Image recognition'이라 하는 논문에서 발표된 모델이다. 이 모델의 가장 핵심적인 부분은 skip-connection이 적용된 residual block인데 skip connection은 다음을 의미한다. Skip connection에 대한 자세한 설명은 다음 글을 확인하자. https://kyteris0624.tistory.com/40 Deep dive into Deep learning part 15. CNN(3) 모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 봐주시길 바랍니다. 오늘은 ResNet, Den.. 2023. 7. 20. Pytorch 4 : Training 우리가 Neural network를 학습시킬 때 사용되는 알고리즘은 '역전파 알고리즘' (Backpropagation)이라고 한다. 이 알고리즘을 활용해서 우리는 모델의 가중치 (weight, parameter)를 loss function의 gradient를 활용해서 조정해간다. 예를 들어 (Mini-batch) Stochastic gradient descent 알고리즘은 다음과 같이 파라미터 업데이트를 진행한다. $w_{t+1} = w_t - \eta_t \sum_{i=1}^b \nabla \mathcal{L}_i(w_t)$ 여기서 $w_t$는 t번째 iteration에서의 파라미터, $\eta_t$는 t번째 iteration에서의 step-size (또는 learning-rate), $\mathcal.. 2023. 7. 16. Pytorch 3 : Neural network 구현 import os import torch import torch.nn as nn from torch.utils.data import DataLoader from torchvision import datasets, transforms 오늘은 Neural network 모델 설계를 위한 코드를 보도록 하자. 우선, 그 전에 다음과 같은 코드를 한 번 살펴보자. 이 코드는 만약에 파이토치가 CUDA, CUDNN등의 nvidia gpu를 위한 라이브러리와 제대로 연동이 되었는지, 즉 Tensor를 GPU에서 저장하고 연산을 GPU를 활용하여 수행할 수 있는지를 확인할 수 있는 코드이다. device = ( "cuda" if torch.cuda.is_available() else "cpu" ) 만약 'cuda'가.. 2023. 7. 15. 이전 1 2 다음