앎을 경계하기

pyTorch 20

[Pytorch Tutorials] Image and Video - Transfer Learning for Computer Vision Tutorial

이번 튜토리얼에서는 transfer learning(전이학습)을 사용하여 image classification용 CNN을 어떻게 학습하는지를 배운다.transfer learning의 두 가지 주요 시나리오는 다음과 같다.Finetuning the convnet랜덤 초기화 대신, imagenet 데이터셋으로 학습된 모델같이 pretrained network를 사용하여 네트워크를 초기화한다.ConvNet as fixed feature extractor마지막 fully connected layer를 제외한 모든 레이어의 weight를 고정시키고, 마지막 fully connected layer를 랜덤 weight로 새롭게 구성하고 그것만 학습시킨다.from __future__ import print_functi..

Machine Learning 2021.03.16

[Pytorch Tutorials] Image and Video - Torchvision object detection finetuning tutorial

Torchvision object detection finetuning tutorial 이 튜토리얼에선 pre-trained된 Mask R-CNN을 finetuning한다. 데이터셋은 보행자 detection, segmentation을 위한 Penn-Fudan database를 사용한다. 345개 보행자 인스턴스가 있는 170개 이미지로 구성되어있다. 데이터셋 만들기 데이터셋은 torch.utils.data.Dataset클래스를 상속해서 __len__과 __getitem__을 구현해야한다. __getitem__은 다음을 반환한다. image : height, width 사이즈의 PIL Image (width, height가 아님을 주의해야한다.) target : dictionary boxes : N개의 ..

Machine Learning 2021.03.11

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - TRAINING A CLASSIFIER

What aoubt data?일반적으로 이미지, 텍스트, 비디오, 오디오 데이터를 다룰 때 numpy array로 데이터를 읽고 torch의 tensor로 변환한다. 각 데이터마다 유용하게 사용하는 라이브러리가 존재한다.Images : Pillow, OpenCVAudio : scipy, librosaText : NLTK, SpaCy특히 vision 분야에서는 torchvision을 사용해서 유명한 데이터셋을 불러서 사용할 수 있다.torchvision.datasets, torch.utils.data.DataLoader 유명 이미지 데이터셋 중 하나인 CIFAR10을 사용해보자.CIFAR10은 RGB 컬러 32*32 사이즈 이미지의 총 10개의 카테고리로 이루어져있는 이미지 데이터셋이다. Training ..

Machine Learning 2021.03.08

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - NEURAL NETWORKS

NEURAL NETWORKSNeural Networks는 torch.nn 패키지를 사용해서 만들 수 있다.매우 유명한 Yann Lecun의 LeNet-5 CNN 구조이다.구조는 굉장히 간단하다.32*32 필기체 숫자 이미지를 넣으면 Convolution layer와 Fully Connected layer를 거쳐 최종적으로 필기체로 쓴 숫자가 무엇인지 output이 출력된다.이러한 뉴럴 네트워크 모델들이 학습이 되는 과정은 일반적으로 다음과 같다.학습가능한 파라미터들로 이뤄진 뉴럴넷을 만든다.반복적으로 입력 데이터셋을 뉴럴넷에 전달한다.정답과 예측값 간 차이, 즉 loss를 계산한다.backpropagation 과정을 통해 뉴럴넷의 파라미터들의 각 gradient를 계산한다.네트워크의 weights를 gr..

Machine Learning 2021.03.08

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - TORCH.AUTOGRAD

torch.autogradPyTorch는 자동 미분 계산을 지원한다.이번 섹션에서는 neural network 학습을 위해 어떻게 자동미분을 적용하는지 개념적으로 이해하도록 한다.Background뉴럴넷은 어떠한 입력 데이터에 대해 실행되는 연결된 함수들(신경망)의 집합이다.이러한 함수들은 weight와 bias로 구성된 parameters에 의해 정의되고, 이것들은 Tensor 형태로 저장된다.뉴럴네트워크 학습 과정은 크게 2단계로 나눌 수 있는데, forward propagation과 backward propagation이다.Forward propagationinput data를 각 함수들에 대해 통과시켜서 가장 옳은 output을 만들어내는 과정이다.Backward propagationforward..

Machine Learning 2021.03.05

DEEP LEARNING WITH PYTORCH: A 60 MINUTE BLITZ - TENSORS

What is PyTorch? PyTorch는 파이썬 기반 패키지로 GPU나 다른 가속장치를 사용하기 위해 NumPy를 대체할 수 있고, neural networks 구현을 위한 자동 미분 라이브러리를 제공한다. Goal of this tutorial PyTorch의 텐서 라이브러리와 neural network를 이해한다. 이미지를 분류하기 위해 작은 neural network를 학습시켜본다. Requirements https://pytorch.org/get-started/locally/ 자신의 OS, 쿠다 버전 등 컴퓨터 사양에 맞는 파이토치 설치 conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch Tensors Tensor..

Machine Learning 2021.03.04