반응형

파이토치 51

[논문 구현] PyTorch로 LeNet-5(1998) 구현하기

안녕하세요! 공부 목적으로 LeNet-5를 파이토치로 구현해보도록 하겠습니다! 논문 리뷰는 여기에서 확인하실 수 있습니다. [논문 리뷰] LeNet-5 (1998), 파이토치로 구현하기 가장 기본적인 CNN 구조인 LeNet-5 논문을 읽어보고 파이토치로 직접 구현해보면서 CNN에 대한 이해도를 높여보겠습니다. LeNet-5은 1998년 Yann LeCun의 논문 'Gradient-Based Learning Applied to Document Re.. deep-learning-study.tistory.com 전체 코드는 여기에서 확인하실 수 있습니다. Seonghoon-Yu/paper-implement-in-pytorch 공부 목적으로 논문을 리뷰하고 파이토치로 구현하고 있습니다. Contribute t..

논문 구현 2021.03.08

[PyTorch] Single Object Detection 모델 생성하기

Single object detection을 위한 간단한 모델을 생성하겠습니다. convolutional layer, pooling layer, skip connection을 활용한 모델입니다. # implement the model class import torch.nn as nn import torch.nn.functional as F # define the bulk of the model class class Net(nn.Module): def __init__(self, params): super(Net, self).__init__() C_in, H_in, W_in = params['input_shape'] init_f = params['initial_filters'] num_outputs = pa..

[PyTorch] 커스텀 데이터셋(custom dataset) 생성하기

AMD dataset을 사용하여 custom dataset을 생성해보겠습니다. AMD dataset은 amd.grand-challenge.org/ 여기에서 다운로드 받으실 수 있습니다. # create the training and validation datasets and the data loaders from torch.utils.data import Dataset from PIL import Image class AMD_dataset(Dataset): def __init__(self, path2data, transform, trans_params): pass def __len__(self): # return size of dataset return len(self.labels) def __getit..

[PyTorch] data augmentation(resize, flip, shift, brightness, contrast, gamma) 함수 정의하기

파이토치로 data augmentation 함수를 정의해보겠습니다. transformation.Compose 함수로 정의하면 쉽게 data augmentation을 사용할 수 있지만, 이 경우에 모든 dataset에 적용이 됩니다. custum dataset을 train과 val로 나눈뒤에 각각에 다른 transformation을 적용하기 위해 함수를 정의해서 사용합니다. 이번 포스팅에서 정의할 data augmentation은 resize, horizontally flip, vertically flip, shift, brightness, contrast, gamma, scale label) 입니다. 1. 이미지 resize 이미지를 resize 해줌과 동시에 label도 갱신해줘야 합니다. import..

[PyTorch] single object image 분석

안녕하세요! Grand Challenge 에서 제공하는 ADM dataset으로 데이터를 분석해보도록 하겠습니다! amd.grand-challenge.org/ 여기에서 회원가입한 후 대회에 참가하면 dataset을 다운로드 할 수 있습니다..ㅎㅎ AMD dataset은 안구의 중심와(Fovea) 이미지와 Fovea의 중앙 위치(label)로 이루어져 있습니다. 우선, 다운로드 받은 label 엑셀 파일을 pandas로 불러와 확인해보겠습니다. import os import pandas as pd # loading Fovea_location.xlsx path2data = '/content/cookbook/MyDrive/data' path2labels = os.path.join(path2data, 'Trai..

[PyTorch] ResNet, pre-trained 모델 불러오기

이번 포스팅에서 ResNet pre-trained model을 불러오도록 하겠습니다. pre-trained model 불러오기 작업환경은 google colab에서 진행했습니다. 1. pre-trained model을 불러옵니다. # load resnet18 with the pre-trained weights from torchvision import models import torch resnet18_pretrained = models.resnet18(pretrained=True) print(resnet18_pretrained) 2. output layer를 현재 data에 맞게 수정합니다. # change the output layer to 10 classes num_classes = 10 num_f..

[PyTorch] 이미지 픽셀의 평균, 표준편차를 계산하여 정규화하기

dataset에 있는 이미지의 평균과 표준편차를 계산하여 정규화(normalize) 해보겠습니다. 1. 데이터셋을 불러옵니다. 저는 torchvision에서 제공하는 STL-10 dataset을 사용했습니다. train dataset을 불러와서 train_ds에 저장합니다. # loading training data from torchvision import datasets import torchvision.transforms as transforms import os path2data = '/data' # if not exists the path, make the path if not os.path.exists(path2data): os.mkdir(path2data) data_transformer = ..

[PyTorch] dataset 분할하기

이번 포스팅에서는 10개의 카테고리을 지닌 데이터셋을 각 카테고리간 동일한 비율로 데이터를 갖도록 분리해보겠습니다. 사용하는 데이터셋은 STL-10 dataset입니다. STL-10 dataset은 10개의 카테고리로 이루어져 있으며, train과 test dataset을 제공합니다. val dataset을 제공하지 않기 때문에 test dataset을 분할하여 val dataset을 만들어보도록 하겠습니다. 작업 환경은 colab에서 진행했습니다. 분할에 이용하는 함수는 sklearn 모듈의 StratifiedShuffleSplit 함수입니다. STL-10 dataset 불러오기 파이토치의 torchvision 패키지에서 제공하는 STL-10 dataset을 불러옵니다. STL-10 dataset은 9..

[PyTorch] 암 이미지로 커스텀 데이터셋 만들기(creating custom dataset for cancer images)

kaggle에 있는 Histopathologic Cancer Detection 대회에서 제공하는 Histopathologic cencer 이미지로 커스텀 데이터셋(custom dataset)을 만들어보도록 하겠습니다. histopathologic cencer 이미지는 종양이 있는 경우 1, 없는 경우 0 두 가지로 분류되는 이진 분류 문제입니다. 우선, kaggle에서 제공한 데이터 레이블을 확인해보겠습니다. 구글 코랩을 사용했습니다. import pandas as pd path2csv = '/content/cookbook/MyDrive/data/train_labels.csv' labels_df = pd.read_csv(path2csv) labels_df.head() id 는 이미지의 이름을 의미합니다...

[Object Detection] YOLO(v3)를 PyTorch로 바닥부터 구현하기 - Part 5

이 포스팅은 공부 목적으로 아래 게시물을 번역한 글입니다. How to implement a YOLO (v3) object detector from scratch in PyTorch: Part 3 Part 3 of the tutorial series on how to implement a YOLO v3 object detector from scratch in PyTorch. blog.paperspace.com yolo v3을 파이토치로 바닥부터 구현하는 튜토리얼의 part 5 입니다. 지난 part에서 신경망의 출력값을 detection predictions로 변환하는 함수를 구현했습니다. 이제 남은 것은 입 출력 pipelines를 생성하는 것입니다. 전체 코드는 여기에서 확인하실 수 있습니다. 이 튜..

반응형