PyTorch深度学习实战(28)——卷积自编码器(Convolutional Autoencoder)

PyTorch深度学习实战(28)——卷积自编码器

0. 前言

我们已经学习了自编码器 (AutoEncoder) 的原理,并使用 PyTorch 搭建了全连接自编码器,但我们使用的数据集较为简单,每张图像只有一个通道(每张图像都为黑白图像)且图像相对较小 (28 x 28)。但在现实场景中,图像数据通常为彩色图像( 3 个通道)且图像尺寸通常较大。在本节中,我们将实现能够处理多维输入图像的卷积自编码器,为了与普通自编码器进行对比,同样使用 MNIST 数据集。

1. 卷积自编码器

与传统的全连接自编码器不同,卷积自编码器 (Convolutional Autoencoder) 利用卷积层和池化层替代了全连接层,以处理具有高维空间结构的图像数据。这样的设计使得卷积自编码器能够在较少的参数量下对输入数据进行降维和压缩,同时保留重要的空间特征。卷积自编码器架构如下所示:

卷积自编码器

从上图中可以看出,输入图像被表示为瓶颈层中的潜空间变量,用于重建图像。图像经过多次卷积(编码器)得到低维潜空间表示,然后在解码器中,将潜空间变

### 卷积自动编码器架构概述 卷积自动编码器(Convolutional Autoencoder, CAE)是一种基于卷积神经网络(CNN)的自动编码器,广泛应用于图像处理领域。其核心思想是利用卷积层提取输入数据的空间特征,并通过解码器重构这些特征以恢复原始输入[^1]。 #### 编码器部分 编码器通常由多个卷积层组成,每一层负责逐步降低空间维度并增加通道数。具体来说,卷积操作能够捕捉局部模式和边缘信息,而池化层则用于进一步压缩数据尺寸。这种设计使得编码器能够在保留重要特征的同时减少冗余信息[^2]。 以下是典型的卷积编码器结构: ```python from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Flatten input_img = Input(shape=(28, 28, 1)) # 假设输入为灰度图像 x = Conv2D(16, (3, 3), activation='relu', padding='same')(input_img) x = MaxPooling2D((2, 2), padding='same')(x) x = Conv2D(8, (3, 3), activation='relu', padding='same')(x) encoded = MaxPooling2D((2, 2), padding='same')(x) encoder_model = Model(input_img, encoded) ``` #### 解码器部分 解码器的任务是对编码后的低维表示进行逆变换,从而尽可能还原原始输入。它一般采用反卷积(Transposed Convolution)或上采样技术来扩展特征图大小。最终输出应与输入具有相同的形状和分辨率[^3]。 下面展示了解码器实现方式: ```python from tensorflow.keras.layers import UpSampling2D, Conv2DTranspose x = Conv2DTranspose(8, (3, 3), activation='relu', padding='same')(encoded) x = UpSampling2D((2, 2))(x) x = Conv2DTranspose(16, (3, 3), activation='relu', padding='same')(x) x = UpSampling2D((2, 2))(x) decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x) autoencoder = Model(input_img, decoded) ``` ### 架构图说明 虽然无法直接提供图片形式的架构图,但可以通过上述代码片段理解整个流程。如果需要更直观的表现形式,可参考文献中提到的相关插图。例如,《Fig. 4: Taxonomy of deep CNN architectures》展示了不同类型的深层卷积网络布局,其中包括类似于CAEs的设计思路。
评论 106
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盼小辉丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值