본문 바로가기

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

Deep 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