Keras实践笔记6——单层自编码器

import numpy as np
from keras.datasets import mnist
from keras.layers import Dense, Input
from keras.models import Model

img_rows, img_cols = 28, 28

(x_train, _), (x_test, _) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))
x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))

input_img = Input(shape=(28 * 28,))
encoded = Dense(500, activation='relu')(input_img)
decoded = Dense(28 * 28, activation='sigmoid')(encoded)

autoencoder = Model(input=input_img, output=decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
autoencoder.summary()

autoencoder.fit(x_train, x_train,
                nb_epoch=10, batch_size=128, shuffle=True, verbose=2,
                validation_data=(x_test, x_test))
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 784)               0         
_________________________________________________________________
dense_1 (Dense)              (None, 500)               392500    
_________________________________________________________________
dense_2 (Dense)              (None, 784)               392784    
=================================================================
Total params: 785,284
Trainable params: 785,284
Non-trainable params: 0

自编码器能够把输入进行编码自学习,然后再解码 单层自编码逻辑比较简单,首先我们创建了一层全连接层采用relu激活函数作为编码层,再采用一层全连接层使用sigmoid作为解码层。然后构建一个自编码器

autoencoder = Model(input=input_img, output=decoded)

这次使用的优化器是adadelta,这个算法是对 Adagrad 的改进,基本不需要我们去设置学习速率

转载于:https://my.oschina.net/xiaomaijiang/blog/1827502

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值