pyTorch6 SPPNet(2014) PyTorch Implementation SPPNet을 Pytorch를 활용하여 구현하고자 한다. https://arsetstudium.tistory.com/35에서 공부한 내용을 토대로 구현보면 아래와 같다. SPPNet은 R-CNN처럼 Spatial Pyramid Pooling을 제외하고 CNN 구조 자체는 기존과 동일하므로 이는 생략한다. SPP는 max pool 또는 average pool이며 중요한 사항은 바로 window와 stride의 사이즈다. 개별 SPP를 우선 구현한다. import torch import torch.nn as nn import math class PyramidPoolCell(nn.Module): # a is the size of feature map # n is the bin size of pyramid po.. 2024. 4. 12. LSTM 모델 설명과 PyTorch Implementation LSTM 설명 LSTM은 Long Short Term Memory의 약자로 Recurrent Neural Network (RNN)의 하나다. 워낙 오래된 모델이라 논문에 대한 설명 보다는 알고리즘에 대한 설명한 하고 넘어가겠다. 설명을 생략하기에는 Tabular data 등의 예측 모델에 쓴다거나 하는 식으로 응용할 수 있기에 포스팅해야겠다 생각했다. RNN은 기본적으로 sequential model로 순서가 유의미한 모델이다. 따라서 단어의 순서가 중요한 NLP라든가 시간에 따른 변화 추이가 중요한 금융 데이터 등에 쓰기 좋은 모델이다. LSTM 역시 RNN의 하나로 sequential model이다. Figure 1을 보면 $t-1$의 이전 state의 cell의 정보가 현재 state인 $t$의 c.. 2024. 4. 9. GoogLeNet = Inception v1 (2014) PyTorch Implementation GoogLeNet = Inception v1을 Pytorch를 활용하여 구현하고자 한다. https://arsetstudium.tistory.com/31에서 공부한 내용을 토대로 구현보면 아래와 같다. Inception Block 전체 GoogLeNet 모델을 구축하기에 앞서서 내부의 inception block을 먼저 구현하고자 한다. 맨 처음에는 쉽게 구축하기 위해서, 추상적으로 arguments를 짜기 보다는 구체적인 숫자를 이용해서 구현한다. 우선 가장 첫 번째 inception block인 inception 3a를 대상으로 짜본다. 자세한 파라미터의 설정은 아래의 Table 1을 참고하면 된다. Inception 3a의 input size는 28 x 28 x 192다. 이때 192는 채널의 개수.. 2024. 4. 3. VGGNet PyTorch Code Implementation VGGNet을 Pytorch를 활용하여 구현하고자 한다. https://arsetstudium.tistory.com/29에서 공부한 내용을 토대로 구현보면 아래와 같다. 우선 Top-5 error rate 성능이 가장 낮았던, 성능이 가장 좋았던 16 layers와 19 layers를 구현하는 편이 좋다. 그중에서도 16 layers가 파라미터 수가 더 적어서 효율적이기 때문에 16 layers 구조를 채택해서 구현하고자 한다. VGGNet은 max pooling을 경계로 해서 features extraction의 convolutional layers를 5개의 block으로 나눠 볼수도 있다. 하지만 여기서는 구체적으로 block의 class나 sequential로 나누지는 않았고 주석으로만 표기했다. .. 2024. 4. 2. PyTorch Image Datasets, Custom Dataset, Fix Seed PyTorch는 다양한 빌트인 데이터셋을 제공한다. 컴퓨터 비전 데이터의 경우 그 목록을 https://pytorch.org/vision/main/datasets.html 에서 볼 수 있다. 그중에서도 대표적인 이미지 데이터로는 CIFAR-10, 100, ImageNet 2012, MNIST, Fashion-MNIST, PASCAL VOC 등이 존재한다. Custom Dataset with csv file 아래 PyTorch 튜토리얼에서 가져온 코드다. https://tutorials.pytorch.kr/beginner/basics/data_tutorial.html import os import pandas as pd from torchvision.io import read_image class Cust.. 2024. 3. 27. AlexNet PyTorch Code Implementation AlexNet을 Pytorch를 활용하여 구현하고자 한다. https://arsetstudium.tistory.com/18에서 공부한 내용을 토대로 구현보면 아래와 같다. 첫 번째 구현 class AlexNet(nn.Module): def __init__(self, num_classes = 1000, dropout = 0.5): super().__init__() self.model = nn.Sequential( # Extracting Fetures Part # First Convolution nn.Conv2d(3, 96, kernel_size = 11, stride = 4, padding = 2), # Activation function is applied nn.ReLU(), # Max pooling n.. 2024. 3. 27. 이전 1 다음