본문 바로가기

BLOG/딥러닝

Deep AE를 이용한 가짜 이미지 생성

【7】AutoEncoder 기본 다지기 / 이미지 생성 실습으로 익히는 AE 

 

이번에는 Deep AE 배워보자

기존에 AE에서 순환신경망 여러  쌓아 깊게 변형된 모델이다

기존코드에서 사용했던 모듈들을 그대로 사용하기에 전처리까지는 생략을 한다(이전 글 참고).

 

 

Hidden_input1 = 512 

Hidden_input2 = 256

Hidden_input3 = 128

Hidden_input4 = 64

Hidden_input5 = 32

 

input_layer = layers.Input(shape=(784,)) Encoding = layers.Dense(Hidden_input1)(input_layer) 

Encoding = layers.Dense(Hidden_input2)(Encoding)

Encoding = layers.Dense(Hidden_input3)(Encoding)

Encoding = layers.Dense(Hidden_input4)(Encoding)

Encoding = layers.Dense(Hidden_input5)(Encoding)

Decoding = layers.Dense(Hidden_input4)(Encoding)

Decoding = layers.Dense(Hidden_input3)(Decoding)

Decoding = layers.Dense(Hidden_input2)(Decoding)

Decoding = layers.Dense(Hidden_input1)(Decoding)

Decoding = layers.Dense(784, activation='sigmoid')(Decoding) 

autoencoder = models.Model(input_layer,Decoding) 

 

5층으로 쌓은 Deep AE모델이다.

기존 모델과 달라진 점은 층을 깊게 쌓은 것을 알 수 있다.

크기는 512, 256, 128, 64, 32 순으로 줄어들었고 다시 32, 64, 128, 256, 512 순으로 커진다

 

 

autoencoder.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])

 

autoencoder.fit(x_train,x_train,epochs=50,shuffle=True,validation_data=(x_test,x_test))

 

컴파일과 학습을 기존에 동일하기에 따로 설명을 하지 않는다.

 

 

바로 결과로 확인해보자

전과 동일하게 위에는 원본이미지, 아래는 예측이미지다.

층을 깊에 쌓은 모델이지만 AE와 비교했을 때 큰차이가 없는 것을 알 수가 있다.

 

 

그래서 CAE라는 새로운 모델을 등장하면서 많이 바뀌게 된다.

 

 

 


작성자 김강빈 kkb08190819@gmail.com / 이원재 ondslee0808@gmail.com]