Cifar10 용 DCGAN 모델을 노출하는 with keras
개요
모델 파라미터들
Generator
generatordef _build_generator(self) -> Model:
start_pix_x = 4
start_pix_y = 4
kernel_ini = RandomNormal(mean=0.0, stddev=0.02)
inputs = Input(shape=self.noise_shape)
x = Dense(
units=256*start_pix_x*start_pix_y,
kernel_initializer=kernel_ini,
bias_initializer='zeros')(inputs)
x = LeakyReLU(alpha=0.2)(x)
x = Reshape((start_pix_x, start_pix_y, 256))(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
x = Conv2D(
filters=3,
kernel_size=3,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
y = Activation('tanh')(x)
model = Model(inputs, y)
if self.verbose:
model.summary()
return model
Discriminator
discriminatordef _build_discriminator(self) -> Model:
kernel_ini = RandomNormal(mean=0.0, stddev=0.02)
inputs = Input(shape=self.shape)
x = GaussianNoise(stddev=0.05)(inputs) # prevent d from overfitting.
x = Conv2D(
filters=64,
kernel_size=3,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
x = Conv2D(
filters=128,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2D(
filters=128,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2D(
filters=256,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
x = Flatten()(x)
features = Dropout(0.4)(x)
validity = Dense(1, activation='sigmoid')(features)
model4d = Model(inputs, validity)
model4g = Model(inputs, validity)
if self.verbose:
model4d.summary()
return model4d, model4g
출력 결과
출력 결과의 행은 클래스에 대응하고 있습니다.
DCGAN은 단지 이미지를 생성할 뿐입니다만, 원의 이미지로 구축한 학습 모델에 생성 화상을 입력해 예측된 라벨에 의해 라벨링 해, 예측 클래스마다 화상을 출력시키고 있습니다.
generator에 LeakyReLU를 넣는 것으로, 물체의 대상이 보다 제대로 생성할 수 있는 느낌이 있는 느낌이 듭니다.
결론
돌관으로 했으므로, 자세한 후일 제대로 쓰고 싶습니다.
Reference
이 문제에 관하여(Cifar10 용 DCGAN 모델을 노출하는 with keras), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yasshi840/items/4cd4e01d18d4acd02c41
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def _build_generator(self) -> Model:
start_pix_x = 4
start_pix_y = 4
kernel_ini = RandomNormal(mean=0.0, stddev=0.02)
inputs = Input(shape=self.noise_shape)
x = Dense(
units=256*start_pix_x*start_pix_y,
kernel_initializer=kernel_ini,
bias_initializer='zeros')(inputs)
x = LeakyReLU(alpha=0.2)(x)
x = Reshape((start_pix_x, start_pix_y, 256))(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2DTranspose(
filters=128,
kernel_size=4,
strides=2,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
x = Conv2D(
filters=3,
kernel_size=3,
padding='same',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
y = Activation('tanh')(x)
model = Model(inputs, y)
if self.verbose:
model.summary()
return model
def _build_discriminator(self) -> Model:
kernel_ini = RandomNormal(mean=0.0, stddev=0.02)
inputs = Input(shape=self.shape)
x = GaussianNoise(stddev=0.05)(inputs) # prevent d from overfitting.
x = Conv2D(
filters=64,
kernel_size=3,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
x = Conv2D(
filters=128,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2D(
filters=128,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
# x = Dropout(0.5)(x)
# x = BatchNormalization(axis=3)(x)
x = Conv2D(
filters=256,
kernel_size=3,
strides=2,
padding='SAME',
kernel_initializer=kernel_ini,
bias_initializer='zeros')(x)
x = LeakyReLU(alpha=0.2)(x)
x = Flatten()(x)
features = Dropout(0.4)(x)
validity = Dense(1, activation='sigmoid')(features)
model4d = Model(inputs, validity)
model4g = Model(inputs, validity)
if self.verbose:
model4d.summary()
return model4d, model4g
출력 결과의 행은 클래스에 대응하고 있습니다.
DCGAN은 단지 이미지를 생성할 뿐입니다만, 원의 이미지로 구축한 학습 모델에 생성 화상을 입력해 예측된 라벨에 의해 라벨링 해, 예측 클래스마다 화상을 출력시키고 있습니다.
generator에 LeakyReLU를 넣는 것으로, 물체의 대상이 보다 제대로 생성할 수 있는 느낌이 있는 느낌이 듭니다.
결론
돌관으로 했으므로, 자세한 후일 제대로 쓰고 싶습니다.
Reference
이 문제에 관하여(Cifar10 용 DCGAN 모델을 노출하는 with keras), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yasshi840/items/4cd4e01d18d4acd02c41
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Cifar10 용 DCGAN 모델을 노출하는 with keras), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yasshi840/items/4cd4e01d18d4acd02c41텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)