Deep dive into Pytorch11 Pytorch 10 : Transfer learning 오늘은 image classification을 'transfer learning'을 활용해 파이토치로 구현하는 코드에 대해 살펴보고자 한다. 오늘날 CNN 모델을 random initialization을 하여 'scratch'로 학습하는 것은 상당히 드문 일이다. 대다수의 경우에는 이미 학습되어진 (pre-trained) 모델을 가져다가 파라미터를 살짝 조정하는 방식으로의 미세 조정 (Fine-tuning) 을 진행하거나, CNN에서 특징을 추출하는 부분인 Convolution layer 부분은 파라미터를 고정시켜놓고 (Freeze), 마지막에 분류를 진행하는 fully-connected layer 부분만 바꾸어서 재학습하는 방식등을 사용한다. 이때 사전 학습된 CNN은 주로 ImageNet 같은 상당히.. 2023. 8. 10. Pytorch 9 : Distributed training 이번 글은 여러 개의 gpu를 사용해서 모델을 학습시키는 코드를 살펴보고자 한다. 이 글에서는 하나의 머신에서 여러 개의 GPU를 사용하는 상황을 가정한다. 하나의 모델을 학습시킬 때 여러 개의 GPU를 활용하는 것을 우리는 'Distributed training'이라 하며 이는 상당히 자주 쓰이는 학습법 중 하나이다. 특히 mini-batch size가 상당히 큰 경우에는 하나의 gpu에서 연산하고자 하면 학습하는 데 걸리는 시간이 상당히 길어질 뿐만 아니라 'CUDA : Out of Memory'를 만날 수도 있다. 이 경우에는 Mini-batch를 여러 개의 (sub) Mini-batch로 나누어서 각각의 gpu에서 병렬적으로 연산이 이뤄지도록 하는 방법을 사용해야 한다. 이를 위한 코드를 살펴보자.. 2023. 8. 5. 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. 이전 1 2 3 다음