본문 바로가기
728x90
반응형

pytorch10

[Classification] CNN으로 MNIST data 분류하기 # 딥러닝 학습 단계 (code 기준) 1) 라이브러리 불러오기 (torch, torchvision, matplotlib 등등) 2) GPU 사용 설정하고 randon value를 위한 seed 설정 3) 학습에 사용되는 hyper-parameter 설정 (learning rate, training epochs, batch size 등) 4) Dataset download & 학습에 사용되기 편하게 DataLoader 생성 5) 학습 모델 만들기 (CNN, DNN 등) 6) Loss function(=Criterion) 정의하고 Optimizer 선언 7) 모델 학습 및 Loss check (=Criterion의 output) 8) 학습된 모델의 성능 Test MNIST 데이터를 CNN을 적용하여 분류해.. AI |Computer Vision/Image Classification 2022. 6. 5.
[Pytorch] Gradient Vanishing & Exploding 막는 방법 많은 layers를 가진 Neural Network을 학습할 때, Backpropagation 과정에서 input층으로 갈수록 Gradient가 점점 소멸되는 현상을 Gradient Vanishing. → Weight가 업데이트가 잘 이루어지지 않아서 최적의 모델을 만들어낼 수 없다. → 이번엔 Gradient Vanishing과 그 반대인 Exploding 현상 방지법에 대해 공부! 1. ReLU function 앞서 공부한 내용이므로 조금 복습하면, Sigmoid 함수를 Activation function으로 사용할 경우, 양끝단(입력의 절대값이 큰 경우)에 output이 0 혹은 1에 수렴하면서 기울기(Gradient)가 0에 가까워지는 현상이 발생한다. - 이 때, input측으로 갈수록 제대로 .. AI |Computer Vision/Basic Pytorch 2022. 6. 4.
[Pytorch] MLP(Multi-layer)를 사용하여 MNIST 분류하기 # Multi-Layer Perceptron(MLP)로 MNIST data 분류하기 → MNIST : 숫자 0~9까지의 이미지로 구성된 손글씨 Dataset → 60,000개의 Training data, label 와 10,000개의 Test data, label로 구성됨 → 각각의 이미지는 28 x 28 size이며, 해당 이미지가 어떤 숫자인지 분류하는 실습 import torch import torchvision import torchvision.datasets as dsets import torchvision.transforms as transforms # GPU & random seed 설정 device = 'cuda' if torch.cuda.is_available() else 'cpu' to.. AI |Computer Vision/Basic Pytorch 2022. 5. 15.
[Pytorch] MultiLayer Perceptron (MLP) & ReLU function 1. 기본 용어 및 특징 딥러닝에서 통용되고 있는 기본적인 용어들과 특징들을 공부해보자 → Perceptron, Backpropagation, Overfitting 등등 1-1. Perceptron (퍼셉트론) - Single / Multi-layer 인공신경망 중 한 종류로, 무언가를 인지하고 그 정보를 통해 문제를 해결하는 결과를 도출하는 것. 위의 사진처럼 Perceptron의 원리는 input(x)가 들어왔을 때, x들에 weight(가중치)를 곱하고 이 가중치들의 합과 Bias를 더해서 Activation function을 통해 output이 출력되는 것이다. 우리는 어떤 inputs에 대한 정답 label을 가지고 Perceptron의 성능을 확인할 수 있고 Training을 통해 정확한 결과.. AI |Computer Vision/Basic Pytorch 2022. 5. 8.
[Pytorch] Softmax Regression (소프트맥스 회귀) 1. Softmax Regression 이해 앞선 Binary Classification 이후, 이번엔 Softmax Regression(소프트맥스)를 이용하여 3개 이상의 선택지 중 1개를 고르는 Multi-Class Classification 실습을 진행한다. 1-1. Review of Logisitc Logistic regression에서는 Sigmoid 함수를 통해 예측값을 0 ~ 1 사이의 값을 출력한다. 그리고 두 확률의 합은 1이 된다. → ' H(X) = sigmoid(WX + B) ' 1-2. Softmax (= Multi-Class Classification) Softmax Regression은 각 클래스(=선택지)마다 확률을 할당하고, 그 확률의 총합이 1이 된다. 또한 각 클래스가 .. AI |Computer Vision/Basic Pytorch 2022. 4. 20.
[Pytorch] Logistic Regression (로지스틱 회귀) 1. Logistic Regression 간략 설명 및 구현 Logistic Regression은 2가지 중 하나를 결정하는 문제인 ' Binary Classification (이진 분류) '를 풀기 위한 대표적인 알고리즘 중에 하나이다. ex) 스팸 메일 분류, 합격/불합격 분류 등 1-1. Hypothesis ( ex, Sigmoid function ) Sigmoid function은 입력값이 커질수록 1에 수렴하고, 작아질수록 0에 수렴한다. 이 함수의 출력값은 0 ~ 1 사이의 값을 가지는데, 이 특성을 이용하여 Classification 작업에 사용 ex) 임계값(=0.5) 이상이면 1(True), 이하이면 0(False)로 판단 1-2. Cost function Linear re.. AI |Computer Vision/Basic Pytorch 2022. 4. 20.
[Pytorch] Multivariable Linear Regression (다중 선형 회귀) " 다수의 x로부터 하나의 y값을 예측하는 모델 " → 2개 이상의 데이터(정보)들로부터 어떤 값을 예측하는 모델 ex) 암의 위치, 넓이, 모양 등을 통한 치료 성공률 ex) 여러 쪽지시험 데이터들을 통한 마지막 시험의 점수 1. PyTorch로 모델 구현하기 → 독립 변수 x가 3개인 모델, 즉 3개의 쪽지시험 점수로부터 Final 점수를 예측하는 모델 구현 import torch import torch.nn as nn # 신경망을 구축하기 위한 데이터 구조나 레이어 정의 import torch.nn.functional as F import torch.optim as optim # Parameter 최적화 알고리즘 구현 # Random .. AI |Computer Vision/Basic Pytorch 2022. 4. 12.
[Pytorch] Single Linear regression(단일 선형 회귀) - 선형회귀(Linear regression)을 이해하고, Pytorch로 모델을 만들어보자 → 하나의 정보로부터 하나의 결과값을 추측! - 데이터 이해, 가설(Hypothesis)수립, 손실(Loss)계산, Gradient descent(Loss funcion) 최소화 ex) 쪽지 시험 점수 예측 1) Data - Train, Test 어떤 학생이 1,2,3시간을 공부했을 때 각각 2,4,6점을 받았다면, 4시간을 공부한다면 몇 점을 받을까? 이 상황에서 예측하기 위해 학습하는 데이터를 ' Training Dataset '라고 하며, 해당 모델이 얼마나 잘 작동하는지 판별하는 데이터를 ' Test Dataset '이라고 한.. AI |Computer Vision/Basic Pytorch 2022. 4. 10.
[PyTorch] Tensor Manipulation 2 1. PyTorch Tensor의 기본 연산 → View, Squeeze, Unsqeeze, Type casting, Concatenate 등의 기초적인 텐서 연산하기 1) View - Tensor의 size 조절 ( 매우 중요 ★★★ ) Pytorch View(뷰)는 "Tensor의 shape를 변경"해주는 역할을 수행한다. → view는 size 변경 전과 후의 Tensor 안의 원소 개수가 유지되어야 한다. → Pytorch의 view는 size가 -1로 설정되면, 해당 차원은 무시하고 다른 차원으로부터 값을 유추 3차원 Tensor에서 2차원 Tensor로 변경 import torch ft = torch.FloatTensor([[[0, 1, 2], # 3차원의 Tensor 생성(ft) [3, 4,.. AI |Computer Vision/Basic Pytorch 2022. 4. 4.
[PyTorch] Tensor Manipulation 1 1. Tensor 이해하기 1D : Vector (벡터) 2D : Matrix (행렬) 3D : Tensor (텐서) - 주로 3차원 이상을 Tensor로 분류 4D : 3차원의 텐서를 위로 쌓아 올린 형상 - 이후 차원은 옆/뒤로 확장한 모습 2. Pytorch Tensor Shape Convention Matrix, Tensor들에 대해 " 크기를 구하는 것 "이 중요하다. 정확한 크기를 고려해야 제대로 구현할 수 있으며, 수식을 쉽게 이해할 수 있다. 2D Tensor : |t| = ( batch size, dim ) 3D Tensor : |t| = ( batch size, width, height ) → 여기부터는 조금 더 복잡한 형.. AI |Computer Vision/Basic Pytorch 2022. 3. 29.
반응형