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)


目录
相关文章
|
10天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
tensorflow的常用函数
tensorflow的常用函数
8 1
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
|
1月前
|
机器学习/深度学习 API TensorFlow
TensorFlow的高级API:tf.keras深度解析
【4月更文挑战第17天】本文深入解析了TensorFlow的高级API `tf.keras`,包括顺序模型和函数式API的模型构建,以及模型编译、训练、评估和预测的步骤。`tf.keras`结合了Keras的易用性和TensorFlow的性能,支持回调函数、模型保存与加载等高级特性,助力提升深度学习开发效率。
|
1月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
Python用线性回归和TensorFlow非线性概率神经网络不同激活函数分析可视化
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
116 3
|
1月前
|
JavaScript API
Vue3 API函数及功能
Vue3 API函数及功能
13 0
|
1月前
|
存储 安全 Linux
【Linux 创建临时文件 API】编程中的瞬息之光:临时文件的艺术与智慧 tmpnam,tmpfile,mkstemp,mkdtemp等函数解析...
【Linux 创建临时文件 API】编程中的瞬息之光:临时文件的艺术与智慧 tmpnam,tmpfile,mkstemp,mkdtemp等函数解析...
39 0
|
1月前
|
数据库连接 API 数据库
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
SQLite3 数据库 C语言API 打开函数sqlite3_open 详解
96 0
|
1月前
|
编译器 API C++
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
109 0
|
17天前
|
机器学习/深度学习 TensorFlow API
TensorFlow与Keras实战:构建深度学习模型
本文探讨了TensorFlow和其高级API Keras在深度学习中的应用。TensorFlow是Google开发的高性能开源框架,支持分布式计算,而Keras以其用户友好和模块化设计简化了神经网络构建。通过一个手写数字识别的实战案例,展示了如何使用Keras加载MNIST数据集、构建CNN模型、训练及评估模型,并进行预测。案例详述了数据预处理、模型构建、训练过程和预测新图像的步骤,为读者提供TensorFlow和Keras的基础实践指导。
152 59