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

1import numpy as np 2from keras.datasets import mnist 3from keras.layers import Dense, Input 4from keras.models import Model 5 6img_rows, img_cols = 28, 28 7 8(x_train, _), (x_test, _) = mnist.load_data() 9x_train = x_train.astype('float32') / 255. 10x_test = x_test.astype('float32') / 255. 11x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:]))) 12x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:]))) 13 14input_img = Input(shape=(28 * 28,)) 15encoded = Dense(500, activation='relu')(input_img) 16decoded = Dense(28 * 28, activation='sigmoid')(encoded) 17 18autoencoder = Model(input=input_img, output=decoded) 19autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy') 20autoencoder.summary() 21 22autoencoder.fit(x_train, x_train, 23 nb_epoch=10, batch_size=128, shuffle=True, verbose=2, 24 validation_data=(x_test, x_test)) 25 26 27_________________________________________________________________ 28Layer (type) Output Shape Param # 29================================================================= 30input_1 (InputLayer) (None, 784) 0 31_________________________________________________________________ 32dense_1 (Dense) (None, 500) 392500 33_________________________________________________________________ 34dense_2 (Dense) (None, 784) 392784 35================================================================= 36Total params: 785,284 37Trainable params: 785,284 38Non-trainable params: 0

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

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

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java中比较两个时间的差值

项目背景1.某篇文稿的发布时间是publishDate,例如:2020072118:00:41。2.现要求判断该篇文稿的发布时间是否在近30天之内。publicstaticlongdayDiff(DatecurrentDate,DatepublishDate){LongcurrentTimecurrentDat