为什么要平整卷积VAE中的最后一个编码器层?

问题描述

我在深度学习游戏中还是一个新手,我想知道为什么我们要在VAE中展平编码器的最后一层,然后将展平的输出提供给线性层,然后对线性层进行近似计算之前?我们不能只拆分卷积层的输出并直接从此处获取位置和比例,还是由卷积捕获的空间信息会搞乱比例和位置?

非常感谢!

解决方法

为什么要在VAE中压平编码器的最后一层?

除了使它便于打印或报告外,没有什么真正的理由。如果在将编码器展平之前就具有[BatchSize,2,2,32]的形状,则将其展平为[BatchSize,128]只会使您方便地列出每个样本的所有128个编码值。当解码器随后将其调整为[BatchSize,2,32]时,所有空间信息都将放回原处。没有丢失任何空间信息。

当然,可以决定使用经过训练的VAE的编码器作为图像特征提取器。当我们有很多未标记的图像来训练VAE时,这实际上非常有用,但是只有很少的标记图像。在大的未标记图像集上训练VAE之后,编码器有效地成为特征提取器。然后,我们可以将特征提取器送入一个密集层,该层的目的是学习标签。在这种情况下,让编码器输出平坦的数据集非常有用。