728x90
반응형

원본 CycleGAN 논문에서 눈에 띄는 성과 중 하나는 모델이 주어진 사진을 특정 아티스트 스타일의 그림으로 변환하는 방법을 학습하는 것이다.

 

CycleGAN 모네 정의

gan = CycleGAN(
        input_dim = (256, 256, 3)
        , learning_rate = 0.0002
        , lambda_validation = 1
        , lambda_reconstr = 10
        , lambda_id = 5
        , generator_type = 'resnet'
        , gen_n_filters = 32
        , disc_n_filters = 64
        )

 

 

생성자(ResNet)

  • 전차 네트워크(residual network) 또는 ResNet이라고 부른다.
  • ResNet 구조는 이전 층의 정보를 네트워크의 앞쪽에 있는 한 개 이상의 층으로 스킵한다는 점에서 U-Net과 비슷하다.
  • 차이점은 네트워크의 다운샘플링 층을 이에 상응하는 업샘플링 층으로 연결하여 'U' 모양을 구성하는 대신 ResNet은 잔차 블록(residual block)을 차례대로 쌓아 구성된다.

 

잔차 블록의 케라스 코드

from kears.layer.merge import add

def residual(layer_input, filters):
            shortcut = layer_input
            y = ReflectionPadding2D(padding =(1,1))(layer_input)
            y = Conv2D(filters, kernel_size=(3, 3), strides=1, padding='valid', kernel_initializer = self.weight_init)(y)
            y = InstanceNormalization(axis = -1, center = False, scale = False)(y)
            y = Activation('relu')(y)
            
            y = ReflectionPadding2D(padding =(1,1))(y)
            y = Conv2D(filters, kernel_size=(3, 3), strides=1, padding='valid', kernel_initializer = self.weight_init)(y)
            y = InstanceNormalization(axis = -1, center = False, scale = False)(y)

            return add([shortcut, y])
  • ResNet 생성자는 잔차 블록의 양쪽에 다운샘플링과 업샘플링 층이 있다.
  • ResNet 구조는 수백 또는 수천 개의 층도 훈련할 수 있다고 알려져 있다. 앞쪽의 층에 도달하는 그레이디언트가 작아져 매우 느리게 훈련되는 그레이디언트 소실(vanishing gradient) 문제가 없다.

 

 

 

 

 

 

 

 

 

 

http://www.yes24.com/Product/Goods/81538614?OzSrank=1

 

미술관에 GAN 딥러닝 실전 프로젝트 - YES24

창조에 다가서는 GAN의 4가지 생성 프로젝트 이 책은 케라스를 사용한 딥러닝 기초부터 AI 분야 최신 알고리즘까지 설명한다. 기계 스스로 그림을 그리고, 글을 쓰고, 음악을 작곡하고, 게임을 하

www.yes24.com

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기