CNN 11

파이토치 - 전이 학습

1. 데이터 준비 1) DataLoader 작성 # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount('/content/gdrive') # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import (Dataset, DataLoader, TensorDataset) import tqdm # DataLoader 작성 from torchvision.datasets import ImageFolder from torchvision import transforms # ImageFolder 함수를 사용해서 Dataset 작성 train_imgs = ImageFolder("..

파이토치 - CNN을 사용한 이미지 분류 (Fashion-MNIST)

1. Fashion-MNIST 10가지 분류의 옷 및 액세서리(신발, 구두 등)를 이미지 데이터 28 X 28 픽셀 크기의 흑백 이미지 1) Fashion-MNIST 데이터로부터 DataLoader 작성 # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import (Dataset, DataLoader, TensorDataset) import tqdm from torchvision.datasets import FashionMNIST from torchvision import transforms # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount('/conte..

파이토치 무작정 시작하기 6 - 모델 변수 프리징

https://www.youtube.com/watch?v=WCByVWpf4rQ # 라이브러리 임포트 import torch import torchvision import torchvision.transforms as transforms # data preprocessing from torch.utils.data import DataLoader # mini-batch import torch.nn as nn # loss import torch.optim as optim # optimizer # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount("/content/gdrive") # 데이터 경로 지정 및 GPU 설정 path = '/content/gd..

파이토치 무작정 시작하기 5 - GPU를 사용한 전이 학습 (colab 사용)

전이학습 이미 알고 있는 지식(데이터, 모델 등)을 다른 문제에 적용하여 풀어가는 과정 가지고 있는 데이터 양이 충분하지 않을 때, 외부 소스로 부터 좋은 특징들을 가져와서 모델에 사용 학습 데이터가 부족하더라도 원하는 모델을 학습할 수 있고 학습 시간을 줄일 수 있다. https://www.youtube.com/watch?v=hOSrn41lCkg # 라이브러리 불러오기 import torch import torchvision from torchvision import transforms import torchvision.transforms as transforms # data processing from torch.utils.data import DataLoader # mini-batch import ..

파이토치 무작정 시작하기 4 - CNN 기본 모델 구축

https://www.youtube.com/watch?v=Gm9Spk2Nmj0 # 라이브러리 불러오기 import torch import torchvision import torchvision.transforms as transforms from torch.utils.data import DataLoader Load data set # 파이토치에서 제공하는 CIFAR10 데이터셋 불러오기 transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))]) trainset = torchvision.datasets.CIFAR10(root='C:/pypy', train=True, down..

CNN으로 강아지,고양이 분류하기

이미지 형태 확인 # 라이브러리 불러오기 import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from PIL import Image import glob # 이미지 불러오기 및 확인 img = Image.open("C:/pypy/dog.jpg") plt.imshow(img) # 이미지 resize 모습 확인 plt.imshow(img.resize([64,64])) # 이미지에 대한 색상 변경 data = img.convert("RGB") # 이미지 resize data = data.resize([64,64]) # 이미지를 숫자 어레이 형식으로 바꾸기 data = np.asarray(data) # 이미지 형태 바꾸기 data..

CNN 코딩 기초

CNN (Convolution Neural Network) 합성곱 신경망 convolution층과 pooling층을 포함하는 신경망 반복[conv층 -> pooling층] -> fully connected층 conv층 : 이미지의 특징을 추출하는 계층 pooling층 : 특징의 일부분만 취하는 계층 (max pooling을 가장 많이 씀) 합성곱 계산 conv층 (합성곱 계층) feature map을 만들고 그 feature map을 선명하게 해주는 층 image : 1,3,3,1 (이미지갯수, 높이, 너비, 색수) filter : 2,2,1,1 (높이,너비,색수,필터수) striide : 1x1 padding : valid 입력데이터 (3, 3) 1 2 3 4 5 6 7 8 9 filter (2, 2)..

CNN의 네트워크 종류

1. LeNet 20여년 전에 제안된 첫 CNN LeNet은 손글씨 숫자를 인식하는 네트워크로 1998년에 제안되었다. 위 그림과 같이 합성곱 계층과 풀링 계층을 반복하고, 마지막으로 완전연결 계층을 거치면서 결과를 출력한다. '현재의 CNN'과 달리 활성화 함수로 시그모이드를 사용하고 서브샘플링을 하여 중간 데이터의 크기가 작아진다. 2. AlexNet 2012년에 발표되어 딥러닝 열풍을 일으키는데 큰 여할을 했다. 합성곱 계층과 풀링 계층을 거듭하며 마지막으로 완전연결 계층을 거쳐 결과를 출력한다. 활성화 함수로 ReLU를 사용하였다. LRN이라는 국소적 정규화를 실시하는 계층을 이용한다. 드롭아웃을 사용한다. 3. VGGNet 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN이다. 다만 비중있는..

간단한 신경망으로 MNIST 정확도 99% 만들기

MNIST 데이터란? 인공지능 연구의 권위자 LeCun교수가 만든 데이터셋 숫자 0~9까지의 손글씨 이미지의 집합이다. 학습데이터 60,000개(확인용데이터 5000개), 테스트데이터 10,000개로 구성 되어 있다. 사이즈는 28x28의 크기를 가진다. 이미지의 값은 0 또는 1이다 (흑,백) MNIST 이미지 2차원 행렬에서 1차원으로 쭈욱 핀 형태로 784개의 열을 가진 1차원 행렬로 변환되어 저장이 되어 있다. mnist.train.image : 784개의 열로 구성된 이미지가 55000개가 저장이 되어 있다. mnist.train.image : 텐서플로우의 행렬을 나타내는 shape의 형태로는 shape=[55000,784] 이 된다. mnist.test.image : 784개의 열로 구성된 숫..

CNN(Convolution Neural Network)의 기본

1. CNN의 개요 https://truman.tistory.com/170 딥러닝의 종류와 개념 1. CNN Convolutional Neural Network, 합성곱 신경망 인간의 시신경 구조를 모방한 기술 1989년 LeCun이 발표한 논문에서 처음 소개가 되었으며, 필기체 zip code 인식을 위한 프로젝트를 통해 개발이 되었다... truman.tistory.com CNN은 합성곱(Convolution) 연산을 사용하는 ANN(Artificial Neural Network)의 한 종류이다. Convolution을 사용하면 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 보낼 수 있다. 대표적인 CNN으로는 LeNet(1998)과 AlexNet(2012)이 있다. VGG, GoogLeNe..

반응형