파이토치 허브(PYTORCH HUB)

2022. 7. 13. 14:00Data Science/01_Machine Learning Study

반응형

최신 연구된 모델을 검색하고 손쉽게 활용할 수 있는 파이토치 허브에 대해 소개해드리겠습니다.

https://pytorch.kr/hub/

 

파이토치 한국 사용자 모임 (PyTorch Korea User Group)

파이토치 한국 사용자 모임에 오신 것을 환영합니다. 딥러닝 프레임워크인 파이토치(PyTorch)를 사용하는 한국어 사용자들을 위해 문서를 번역하고 정보를 공유하고 있습니다.

pytorch.kr

 

현재 파이토치 허브에서는 Audio, Generative, Nlp, Scriptable, Vision과 관련된 최신 연구 모델들을 공개하고 있습니다. 평소 Generative 모델에 관심이 많았기 때문에 가장 기초가 되는 DCGAN에 대해서 살펴보도록 하겠습니다.

 

DCGAN ON FASHIONGEN

64x64 이미지를 위한 간단한 생성모델인 DCGAN을 허브에 저장된 모델로 사용해보겠습니다. GPU 활용 가능여부를 확인하고 파이토치 허브에서 사전 학습된 DCGAN 모델을 불러옵니다.(A simple generative image model for 64x64 images)

import torch

use_gpu = True if torch.cuda.is_available() else False
model = torch.hub.load('facebookresearch/pytorch_GAN_zoo:hub', 'DCGAN', pretrained=True, useGPU=use_gpu)

 

 

사전 학습된 모델을 사용하기 때문에 (N, 120) 크기의 노이즈 벡터(=noise)를 생성합니다. 이때 N은  생성하고 싶은 이미지의 수 이며 예제로 64개 이미지를 생성합니다. 이미지 생성은 모델의 포함되어 있는 .test method를 사용를 사용하고 사전에 만들었던 노이즈 벡터를 입력하면 이미지(64, 3, 64, 64)가 생성 됩니다.

num_images = 64
noise, _ = model.buildNoiseData(num_images)
with torch.no_grad():
    generated_images = model.test(noise)

 

생성된 이미지를 시각화하면 다음과 같습니다.

import matplotlib.pyplot as plt
import torchvision
plt.imshow(torchvision.utils.make_grid(generated_images).permute(1, 2, 0).cpu().numpy())
plt.show()

 

 

DCGAN은 Generative 모델 중 가장 기초가 되는 모델입니다. 생성자와 감별자 두개의 모델이 적대적 과정을 통해 모델이 학습되며 생성자는 실제같은 이미지를 더 잘 생성하게, 감별자는 점차 진짜와 가짜를 더 잘 구별할 수 있도록 학습됩니다. 더 자세한 코드와 원하는 이미지로 생성 모델을 만들고 싶다면 이곳을 누르시거나 아래 Reference를 참고하시기 바랍니다.

 

 

Reference

[paper] https://arxiv.org/abs/1511.06434

[github] https://github.com/facebookresearch/pytorch_GAN_zoo/blob/main/models/DCGAN.py

[colab] https://colab.research.google.com/github/pytorch/pytorch.github.io/blob/master/assets/hub/facebookresearch_pytorch-gan-zoo_dcgan.ipynb 

[demo] https://huggingface.co/spaces/pytorch/DCGAN_on_fashiongen

반응형