이번에는 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
'【7】AutoEncoder 기본 다지기 > 이미지 생성 실습으로 익히는 AE' 카테고리의 다른 글
<AE 이미지 생성 실습> 직접 코드 구현해보기 (0) | 2020.03.25 |
---|