TensorFlow利用函数API实现简易自编码器

简介: TensorFlow利用函数API实现简易自编码器


该示例创建了一个编码器模型、一个解码器模型,并在两个调用中将它们链接,以获得自动编码器模型:


编码器模型:


将输入源数据进行压缩编码,一定程度上可以去除输入数据的噪音,最大程度上保留图像的原始特征



解码器模型:


将编码器编码压缩后的数据按照一定策略进行解压,也就是解码,将压缩后的数据还原成原始的数据,但是经过这样一个操作后,输出和原始数据肯定是会有损失的,所以像图像填充、音频去噪就是按照这个原理实现的,保留原始数据最重要的特征,取出掉数据中的噪音。



完整代码:


"""

* Created with PyCharm

* 作者: 阿光

* 日期: 2022/1/2

* 时间: 12:16

* 描述:

"""

from keras import Model

from tensorflow import keras

from tensorflow.keras.layers import *


encoder_input = Input(shape=(28, 28, 1), name='img')

x = Conv2D(16, 3, activation='relu')(encoder_input)

x = Conv2D(32, 3, activation='relu')(x)

x = MaxPooling2D(3)(x)

x = Conv2D(32, 3, activation='relu')(x)

x = Conv2D(16, 3, activation='relu')(x)

encoder_output = GlobalMaxPooling2D()(x)


encoder = Model(encoder_input, encoder_output, name='encoder')

encoder.summary()


decoder_input = Input(shape=(16,))

x = Reshape((4, 4, 1))(encoder_output)

x = Conv2DTranspose(16, 3, activation='relu')(x)

x = Conv2DTranspose(32, 3, activation='relu')(x)

x = UpSampling2D(3)(x)

x = Conv2DTranspose(16, 3, activation='relu')(x)

decoder_output = Conv2DTranspose(1, 3, activation='relu')(x)


decoder = Model(encoder_input, decoder_output, name='decoder')

decoder.summary()


auto_encoder = Model(encoder_input, decoder_output, name='autoencoder')

auto_encoder.summary()


keras.utils.plot_model(auto_encoder, "auto_encoder.png", show_shapes=True)

目录
相关文章
|
API C# Windows
C#实现操作Windows窗口句柄:常用窗口句柄相关API、Winform中句柄属性和Process的MainWindowHandle问题【窗口句柄总结之三】
本篇主要介绍一些与窗口句柄相关的一些API,比如设置窗口状态、当前激活的窗口、窗口客户区的大小、鼠标位置、禁用控件等,以及介绍Winform中的句柄属性,便于直接获取控件或窗体句柄,以及不推荐...
1760 0
C#实现操作Windows窗口句柄:常用窗口句柄相关API、Winform中句柄属性和Process的MainWindowHandle问题【窗口句柄总结之三】
|
XML JSON 前端开发
软件测试|Spring Boot 的 RESTful API 设计与实现
软件测试|Spring Boot 的 RESTful API 设计与实现
129 0
软件测试|Spring Boot 的 RESTful API 设计与实现
|
SQL 安全 Java
微服务API开放授权平台的设计与实现
微服务API开放授权平台的设计与实现
微服务API开放授权平台的设计与实现
|
机器学习/深度学习 TensorFlow 算法框架/工具
优达学城深度学习之六——TensorFlow实现卷积神经网络
优达学城深度学习之六——TensorFlow实现卷积神经网络
优达学城深度学习之六——TensorFlow实现卷积神经网络
|
人工智能 数据可视化 API
【超简单API实现分割】PaddleSeg 分割之API
【超简单API实现分割】PaddleSeg 分割之API
324 0
【超简单API实现分割】PaddleSeg 分割之API
|
API
vb纯api实现ping主机(仅仅返回是否ping通)
vb纯api实现ping主机(仅仅返回是否ping通)
142 0
|
前端开发 JavaScript API
借助 Web Animations API 实现一个鼠标跟随偏移动画
借助 Web Animations API 实现一个鼠标跟随偏移动画
227 0
借助 Web Animations API 实现一个鼠标跟随偏移动画
|
机器学习/深度学习 存储 TensorFlow
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(下)
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制
163 0
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(下)
|
机器学习/深度学习 数据采集 自然语言处理
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(上)
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制
234 1
直观理解并使用Tensorflow实现Seq2Seq模型的注意机制(上)
|
机器学习/深度学习 数据可视化 TensorFlow
使用TensorFlow Probability实现最大似然估计
TensorFlow Probability是一个构建在TensorFlow之上的Python库。它将我们的概率模型与现代硬件(例如GPU)上的深度学习结合起来。
120 1

热门文章

最新文章