Pix2Pix

Pix2Pix

dataLoader

미니 배치 형태로 만들어서 우리가 실제로 학습할 때 배치 단위로 학습이 가능하게 해준다.

dataLoader

dataset : 실제 넣을 데이터(tensor)

batch_size : 배치 크기를 정해준다. GPU에 한번에 몇개의 이미지를 넣어 줄 것이냐

shuffle : True 일 시,매 epoch 마다 데이터가 임의로 섞인다.

num_workers : 멀티 프로세싱

pin_memory : RAM의 한 부분을 예약해놓고 쓴다.

drop_last : 배치로 나누고 남은 데이터들

coco데이터 셋을 사용하여 이미지를 불러온다.

train과 test 데이터를 분리

이미지 데이터 클래스

transforms 를 사용하여 이미지 전처리

lab 채널을 사용하여 2개의 채널만 사용한다.

데이터 로드에 들어갈 custom 데이터 전처리를 위한 클래스

생성 모델

정의 : 생성 모델은 실존하지 않지만 있을 법한 이미지를 생성할 수 있는 모델을 의미한다.

  • 이미지 데이터의 분포를 근사하는 모델 G를 만드는 것이 생성 모델의 목표입니다.
  • 모델 G가 잘 작동한다는 의미는 원래 이미지들의 분포를 잘 모델링 할 수 있다는 것

  • generator는 Figure 3와 같은 skip connection을 가진 encoder-decoder의 “U-Net”구조를 가짐.
  • Image-to-Image translation 문제에서는 입력에서의 구조가 출력에서의 구조와 대략적으로 align됨. 이러한 점을 고려하여 U-Net과 같이 low-level의 정보가 입출력에서 공유되는 구조를 사용함.
  • generator에게 information에 대한 bottleneck을 우회할 수 있는 수단을 제공하기 위해, “U-Net”의 일반적인 형태를 따르는 skip connection을 더함.
  • 구체적으로, skip connection을 layer i와 layer n-i사이에 더함. (total layer 수 = n)
  • 각각의 skip connection은 layer i에 있는 모든 channel들을 layer n-i에 concatenates함.

판별자

모델 초기화

Loss function

train

Leave a comment