반응형

pytorch 82

[PyTorch] to_pil_image 명령어로 tensor를 pil image로 변경하기

안녕하세요 ㅎㅎ!! 이번 포스팅에서는 tensor인 데이터를 to_pil_image 명령어로 pil data type으로 변경하는 법을 살펴보겠습니다. 정말 편리하게 사용하고 있는데요, 자꾸 까먹어서 기록합니다 ㅎㅎ !! 임의의 데이터를 갖고 왔는데요, 해당 데이터는 data loader에서 추출하여 tensor 형태의 [C,H,W]로 되어있습니다. # 임의의 데이터를 갖고 오겠습니다. for x, y in train_dl: print(x.shape, y.shape) break img = x[0] target = y[0] print(img.shape, target.shape) print(img.dtype) 위 tensor 데이터를 pil 데이터로 변경하여 손쉽게 시각화 할 수 있는 함수가 to_pil_i..

[PyTorch] PyTorch에서 제공하는 ResNet을 불러와 마지막 FC layer 수정하기

안녕하세요! 이번 포스팅에서는 PyTorch에서 제공하는 ResNet을 불러오고, 마지막 FC layer를 수정하는 방법을 살펴보겠습니다. import torch.nn as nn from torch.nn import functional as F from .utils_resnet import resnet18 class FaceNet_ResNet18(nn.Module): def __init__(self, embedding_dimension=128, pretrained=False): super().__init__() self.model = resnet18(pretrained=pretrained) # embedding input_features_fc_layer = self.model.fc.in_features ..

[논문 읽기] PyTorch 구현 코드로 살펴보는 FaceNet(2015), A Unified Embedding for Face Recognition and Clustering

안녕하세요, 오늘 읽은 논문은 FaceNet, A Unified Embedding for Face Recognition and Clustering 입니다. 해당 논문은 Triplet Loss를 처음으로 제안한 논문이기 때문에, 호기심에 읽게 되었네요 ㅎㅎ PyTorch 구현 코드와 함께 살펴보도록 하겠습니다. FaceNet은 anchor(특정 사람 얼굴 사진), positive(동일한 사람의 얼굴 사진), negative(다른 사람의 얼굴 사진) 세 개의 사진을 CNN에 전달하여 152차원의 embedding을 생성합니다. (CNN 구조를 수정하면 152차원을 갖는 embedding을 출력할 수 있도록 할 수 있습니다. 아래에서 어떻게 수정했는지 PyTorch 코드로 살펴보겠습니다.) 3개의 embedd..

[논문 구현] PyTorch로 Style Transfer(2015)를 구현하고 학습하기

안녕하세요, 이번 포스팅에서는 Style transfer의 시초가 되는 A Neural Algorithm of Artistic Style 논문을 구현하고 이미지 합성을 진행하겠습니다. 작업 환경은 Google Colab에서 진행했습니다. 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] PyTorch 구현 코드로 살펴보는 Style Transfer(2015) 안녕하세요, 오늘 읽은 논문은 A Neural Algorithm of Artistic Style 입니다. 해당 논문은 Style Transfer의 시초가 되는 논문이라고 하네요 ㅎㅎ 논문을 읽어도 이해가 잘 되지 않아, 구현코드를 살펴보면서 deep-learning-study.tistory.com 전체 코드는 아래 깃허브에서 확인하실..

논문 구현 2021.06.11

[PyTorch] pretrained VGG 불러오고, 파라미터 freeze 하기

안녕하세요! 이번 포스팅에서는 pretrained VGG net을 불러오고, 모델의 파라미터 freeze를 하는 방법을 알아보겠습니다 ㅎㅎ!! 우선 pretrained VGG19를 불러옵니다. # pretrained VGG19를 불러옵니다 import torchvision.models as models device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model_vgg = models.vgg19(pretrained=True).features.to(device).eval() 파라미터를 freeze 합니다. # 파라미터를 freeze 합니다. for param in model_vgg.parameters(): param.requires..

[PyTorch] Albumentations 모듈 사용해서 이미지 transformation 적용하기.

안녕하세요 ㅎㅎ 오늘은 Albumentations 모듈을 사용해서 이미지 transformation을 정의하고, 데이터셋에 적용하겠습니다. Albumentations 모듈은 torchvision.transformer 보다 빠르게 작동하며, object detection task에서 이미지를 transform 적용하면 바운딩 박스도 함께 transform 되도록 할 수 있습니다. 즉, 아주 아주 편리합니다 ㅎㅎ 우선 albumentations 모듈을 설치합니다. # install transformation package !pip install -U albumentations 커스텀 데이터셋을 생성합니다. 저의 경우에는 VOC dataset을 사용했습니다. class VOCDataset(Dataset): d..

[논문 읽기] 구현 코드로 살펴보는 SegNet(2016), A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

안녕하세요, 오늘 읽은 논문은 SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 입니다. SegNet은 semantic pixel-wise segmentation을 위한 fully convolutional neural network architecture 입니다. encoder network와 decoder network로 구성되며 이후에 pixel-wise classification layer가 따라옵니다. encoder은 VGG16 network와 동일하게 13 conv layer로 구성되며, decoder network의 역할은 저해상도의 pixel-wise classification을 위해encoer f..

[PyTorch] 가중치 초기화 함수 정의하고 모델에 적용하기

안녕하세요! 가중치 초기화 함수를 정의하고 모델에 적용해보도록 하겠습니다. 자꾸 까먹어서 작성합니다ㅎㅎ! 가중치 초기화 함수를 정의하는 방법은 (1) 모델 구현 코드 내에 가중치 초기화 함수 정의하여 사용하기, (2) 모델을 생성한 뒤에 가중치 초기화 함수 정의하여 사용하기. 두 가지 방법이 있습니다. 개인적으로 (2) 번 방법이 편하여 2번 방법을 작성하겠습니다. 우선 구현한 모델을 생성해야 합니다. 저는 현재 gan을 공부하는 중이므로 discriminator, generator 두 개를 구현했습니다 ㅎㅎ model_dis = Discriminator().to(device) model_gen = Generator(params).to(device) 가중치 초기화 함수를 정의합니다. 값은 제가 임의로 설..

[논문 구현] PyTorch로 Pix2Pix(2016) 구현하고 학습하기

pix2pix를 구현한 후 facade dataset로 학습한 generator이 생성한 가짜 이미지를 확인해보겠습니다. 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] 구현 코드로 살펴보는 Pix2Pix(2016), Image-to-Image Translation with Conditional Adversarial Networks PyTorch 코드와 함께 Pix2Pix를 살펴보도록 하겠습니다. Pix2Pix는 image를 image로 변환하도록 generator을 학습합니다. 예를 들어, generator의 입력값으로 스케치 그림을 입력하면 완성된 그림이 나오도 deep-learning-study.tistory.com 전체 코드는 아래 깃허브에서 확인하실 수 있습니다. Seongho..

논문 구현 2021.05.20

[논문 읽기] 구현 코드로 살펴보는 Pix2Pix(2016), Image-to-Image Translation with Conditional Adversarial Networks

PyTorch 코드와 함께 Pix2Pix를 살펴보도록 하겠습니다. Pix2Pix는 image를 image로 변환하도록 generator을 학습합니다. 예를 들어, generator의 입력값으로 스케치 그림을 입력하면 완성된 그림이 나오도록 학습할 수 있습니다. 기존 GAN과 비교하여 설명하자면, Pix2Pix는 기존 GAN의 noise 대신에 스케치 그림을 입력하여 학습을 하는 것입니다. 어떻게 generator이 image to image를 생성하도록 학습시킬 수 있는지 살펴보겠습니다. 일반적으로 generator은 스케치를 입력받아 가짜 이미지를 출력합니다. 이 가짜 이미지를 discriminator이 완성된 그림으로 식별하도록 목적 함수를 설계하여 학습을 진행하면 서서히 generator은 완성된 ..

논문 읽기/GAN 2021.05.20
반응형