본문 바로가기

딥러닝

15. AutoEncoder 예제코드

 

https://colab.research.google.com/drive/1AREWJExVHXtENB_XBlkFmTyKUT9REY-Z

 

Google Colaboratory

 

colab.research.google.com

 

 이번 예제코드에서는 두종류의 AutoEncoder 코드를 작성했습니다.

 


 Mnist 데이터를 이용하였고, 기본적인 Autoencoder로는 FC layer만을 이용해서 모델을 구성하였습니다.

이 AE를 훈련시켜서 나온 압축 -> 복원 시킨 결과는 이렇습니다.

 뭔가 형태가 비슷한 것 같긴한데, 숫자 외의 배경 색깔이 좀 다르고, 얼룩이 묻어있는 듯하게 나오죠.

 

 그 다음에는 Convolutional AutoEncoder 입니다.

 

 Encoder를 Conv layer -> Pooling -> Conv layer -> Pooling 으로 구성했고, Decoder는 encoder의 역순으로 구성하였습니다. 그렇다면 Pooling은 이미지 크기를 줄이는 layer인데, decoder에서는 어떤식으로 크기를 키워야 할까요? 보통 Transposed convolution을 이용합니다. Transposed conv를 이용해서 크기를 두배 키워주었습니다.

 

 FC layer만 이용한 AE에 비해서 파라메터 수가 많이 적습니다. 하지만 layer가 더 깊기도해서 같은 epoch를 훈련 시키더라도 시간이 더 걸립니다.

 

 

 Convolution AE의 결과는 이렇게 나왔습니다. 확연히 차이나는 부분은 배경부분이네요. 배경이 원래의 색깔과 거의 똑같죠. 중간 중간 점 부분을 빼면, 또 숫자가 살짝 흐릿하고 연한 것을 제외하면 원래 이미지를 거의 복구해낸 것을 볼 수 있습니다.

 

 

'딥러닝' 카테고리의 다른 글

17. GAN - 예제코드  (0) 2019.12.05
16. GAN - 생성모델  (0) 2019.12.03
14. AutoEncoder  (0) 2019.11.23
13. RNN (순환 신경망)  (0) 2019.11.20
12. Learning Curve (학습 곡선)  (2) 2019.11.19