import numpy as np
np.random.seed(1337) from keras.datasets import mnist
from keras.models import Model
from keras.layers import Dense, Input
import matplotlib.pyplot as plt (x_train,y_train),(x_test,y_test) = mnist.load_data() x_train = x_train.astype('float32') / 255.-0.5 #(-0.5,0.5)的区间
x_test = x_test.astype('float32') / 255.-0.5
x_train = x_train.reshape((x_train.shape[0],-1))
x_test = x_test.reshape((x_test.shape[0],-1))
print(x_train.shape)
print(x_test.shape) # 最终压缩成2个
encoding_dim = 2 # 输入
input_img = Input(shape=(784,)) # encoder layers
encoded = Dense(128, activation='relu')(input_img)
encoded = Dense(64, activation='relu')(encoded)
encoded = Dense(10, activation='relu')(encoded)
encoder_output = Dense(encoding_dim,)(encoded) # decoder layers
decoded = Dense(10,activation='relu')(encoder_output)
decoded = Dense(64,activation='relu')(decoded)
decoded = Dense(128,activation='relu')(decoded)
decoded = Dense(784,activation='tanh')(decoded) # 搭建autoencoder模型
autoencoder = Model(input=input_img,output=decoded) # 搭建encoder model for plotting,encoder是autoencoder的一部分
encoder = Model(input=input_img,output=encoder_output) # 编译 autoencoder
autoencoder.compile(optimizer='adam',loss='mse') # 训练
autoencoder.fit(x_train, x_train,
nb_epoch=20,
batch_size=256,
shuffle=True) # plotting
encoded_imgs = encoder.predict(x_test)
plt.scatter(encoded_imgs[:,0], encoded_imgs[:,1], c=y_test)
plt.show()
E:\ProgramData\Anaconda3\lib\site-packages\h5py\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Using TensorFlow backend.
(60000, 784)
(10000, 784)
D:/我的python/用keras搭建神经网络/Autoencoder 自编码.py:38: UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor("in..., outputs=Tensor("de...)`
autoencoder = Model(input=input_img,output=decoded)
D:/我的python/用keras搭建神经网络/Autoencoder 自编码.py:41: UserWarning: Update your `Model` call to the Keras 2 API: `Model(inputs=Tensor("in..., outputs=Tensor("de...)`
encoder = Model(input=input_img,output=encoder_output)
D:/我的python/用keras搭建神经网络/Autoencoder 自编码.py:50: UserWarning: The `nb_epoch` argument in `fit` has been renamed `epochs`.
shuffle=True)
Epoch 1/20
60000/60000 [==============================] - 5s 80us/step - loss: 0.0694
Epoch 2/20
60000/60000 [==============================] - 1s 20us/step - loss: 0.0562
Epoch 3/20
60000/60000 [==============================] - 1s 19us/step - loss: 0.0525
Epoch 4/20
60000/60000 [==============================] - 1s 20us/step - loss: 0.0493
Epoch 5/20
60000/60000 [==============================] - 1s 20us/step - loss: 0.0476
Epoch 6/20
60000/60000 [==============================] - 1s 20us/step - loss: 0.0463
Epoch 7/20
60000/60000 [==============================] - 1s 22us/step - loss: 0.0452
Epoch 8/20
60000/60000 [==============================] - 1s 23us/step - loss: 0.0442
Epoch 9/20
60000/60000 [==============================] - 1s 19us/step - loss: 0.0435
Epoch 10/20
60000/60000 [==============================] - 1s 19us/step - loss: 0.0429
Epoch 11/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0424
Epoch 12/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0419
Epoch 13/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0415
Epoch 14/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0412
Epoch 15/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0409
Epoch 16/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0405
Epoch 17/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0402
Epoch 18/20
60000/60000 [==============================] - 1s 19us/step - loss: 0.0401
Epoch 19/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0398
Epoch 20/20
60000/60000 [==============================] - 1s 18us/step - loss: 0.0397

用Keras搭建神经网络 简单模版(六)——Autoencoder 自编码的更多相关文章

  1. 用Keras搭建神经网络 简单模版(二)——Classifier分类(手写数字识别)

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) #for reproducibility再现性 from keras.d ...

  2. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) #for reproducibility再现性 from keras.d ...

  3. 用Keras搭建神经网络 简单模版(一)——Regressor 回归

    首先需要下载Keras,可以看到我用的是TensorFlow 的backend 自己构建虚拟数据,x是-1到1之间的数,y为0.5*x+2,可视化出来 # -*- coding: utf-8 -*- ...

  4. 用Keras搭建神经网络 简单模版(五)——RNN LSTM Regressor 循环神经网络

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) import matplotlib.pyplot as plt from ...

  5. 用Keras搭建神经网络 简单模版(四)—— RNN Classifier 循环神经网络(手写数字图片识别)

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) from keras.datasets import mnist fro ...

  6. keras搭建神经网络快速入门笔记

    之前学习了tensorflow2.0的小伙伴可能会遇到一些问题,就是在读论文中的代码和一些实战项目往往使用keras+tensorflow1.0搭建, 所以本次和大家一起分享keras如何搭建神经网络 ...

  7. 深度学习实践系列(3)- 使用Keras搭建notMNIST的神经网络

    前期回顾: 深度学习实践系列(1)- 从零搭建notMNIST逻辑回归模型 深度学习实践系列(2)- 搭建notMNIST的深度神经网络 在第二篇系列中,我们使用了TensorFlow搭建了第一个深度 ...

  8. 对比学习用 Keras 搭建 CNN RNN 等常用神经网络

    Keras 是一个兼容 Theano 和 Tensorflow 的神经网络高级包, 用他来组件一个神经网络更加快速, 几条语句就搞定了. 而且广泛的兼容性能使 Keras 在 Windows 和 Ma ...

  9. Keras(六)Autoencoder 自编码 原理及实例 Save&reload 模型的保存和提取

    Autoencoder 自编码 压缩与解压 原来有时神经网络要接受大量的输入信息, 比如输入信息是高清图片时, 输入信息量可能达到上千万, 让神经网络直接从上千万个信息源中学习是一件很吃力的工作. 所 ...

随机推荐

  1. [Python] Codecombat攻略 远边的森林 Forest (1-40关)

    首页:https://cn.codecombat.com/play语言:Python 第二界面:远边的森林Forest(40关)时间:2-6小时内容:if/else.关系操作符.对象属性.处理输入网页 ...

  2. 个人推荐-几款好用的App

    前言 在使用智能手机的过程中比较喜欢尝试一些新奇好玩的app,同时也积攒下了不少个人认为很有帮助或很有特点的app,写这篇随笔当做一个记录吧. 便签-小周便签 一款功能十分强大的便签app,在编辑界面 ...

  3. php中unserialize 返回false的解决方法

    serialize 序列化 unserialize 反序列化 $content = 'a:5:{s:4:"img1";s:5:"35568";s:4:" ...

  4. 云计算下的企业IT运维

    云计算管理员们一般都工作在一个分布式局域网计算基础设施中,它与传统数据中心最大的区别之一就是,所有被存储.调配和管理的数据都在一个私有云中.基于云计算的高效工作负载监控可在性能发生问题之前就提前发现这 ...

  5. win10 专业版永久密钥

    激活码/密匙: 1.专业版: W269N-WFGWX-YVC9B-4J6C9-T83GXMH37W-N47XK-V7XM9-C7227-GCQG92X7P3-NGJTH-Q9TJF-8XDP9-T83 ...

  6. .net 后台给html控件赋值

    接上篇,上篇中每个专业的名称是写死的,如何动态获取数据库中的值,同时对其他代码产生最小影响呢? 前台代码 <div " id="div1" runat=" ...

  7. 25-SQLServer中的DMV和DMF的使用

    一.总结 1.什么事DMV和DMFDMV(Dynamic Management View):动态管理视图DMF(Dynamic Management Function):动态管理函数 二.操作步骤 1 ...

  8. C语言学习系列(四)C语言基本语法和数据类型

    一.基本语法 C的令牌(Tokens) C 程序由各种令牌组成,令牌可以是关键字.标识符.常量.字符串值,或者是一个符号. 关键字(保留字) auto else long switch break e ...

  9. Flutter 踩坑集

    1.Flutter Packages Get 一直重试或一直失败的问题 翻车原因:万恶之源-----天朝的长城防火墙 解决方法 详见:https://flutter.dev/community/chi ...

  10. Win 7 x64 + Visual Studio 2015为WinXP编译可执行程序

    造冰箱的大熊猫@cnblogs 2019/9/5 本文承接<Win7下使用Visual Studio为WinXP编译可执行文件>一文. - 在64位Win7(开发机)上,编写基于C的Win ...