2022. 7. 13. 14:00ㆍData Science/01_Machine Learning Study
최신 연구된 모델을 검색하고 손쉽게 활용할 수 있는 파이토치 허브에 대해 소개해드리겠습니다.
현재 파이토치 허브에서는 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
[demo] https://huggingface.co/spaces/pytorch/DCGAN_on_fashiongen
'Data Science > 01_Machine Learning Study' 카테고리의 다른 글
분위수 회귀(Quantile Regression) with Python (2) | 2021.07.22 |
---|---|
단순회귀모형_단순회귀분석(2/2부) (0) | 2021.03.14 |
단순회귀모형_단순회귀분석(1/2부) (0) | 2021.03.10 |
Prophet을 활용한 Kaggle 문제 풀어보기 (0) | 2021.02.25 |
Auto ML PyCaret을 활용한 Kaggle 문제 풀기 (0) | 2020.10.04 |