【问题标题】:Implement CVAE for a single image为单个图像实施 CVAE
【发布时间】:2020-10-17 15:29:52
【问题描述】:

我有一个多维的hyper-spectral 图像 (channels, width, height = 15, 2500, 2500)。我想将其 15 个通道维度压缩为 5 个通道。因此,输出将是 (channels, width, height = 5, 2500, 2500)。一种简单的方法是应用 PCA。但是,性能并不是那么好。因此,我想使用变分自动编码器(VAE)。 当我在 Tensorflow 或 keras 库中看到可用的解决方案时,它显示了一个使用卷积变分自动编码器(CVAE)对whole images 进行聚类的示例。

https://www.tensorflow.org/tutorials/generative/cvae

https://keras.io/examples/generative/vae/

但是,我只有一张图片。实施 CVAE 的最佳实践是什么?是通过移动窗口的方式生成样本图像吗?

【问题讨论】:

    标签: tensorflow keras deep-learning unsupervised-learning dimensionality-reduction


    【解决方案1】:

    一种方法是使用 CVAE,将每个空间坐标的所有光谱特征值作为输入(和输出)值(图中红色圈出的堆栈)。因此,对于您的图像,您将有 2500*2500 = 6250000 个输入数据样本,它们都是长度为 15 的向量。然后中间层的维度将是长度为 5 的向量。并且,而不是 2D通常沿图像的空间域使用的卷积,在这种情况下,在光谱域上使用一维卷积是有意义的(因为相邻波长的值也是相关的)。但我认为只使用全连接层也是有意义的。

    作为免责声明,我以前从未见过以这种方式使用 CVAE,但是这样,您还会获得许多数据样本,这是为了使学习能够很好地泛化所必需的。

    另一个选项确实是您建议的 - 仅使用移动窗口生成样本(补丁)(也许步幅是补丁的一半大小)。即使您不一定会获得足够的数据样本让 CVAE 在所有 HSI 图像上很好地泛化,但我想这并不重要(如果它过拟合),因为您想在同一张图片。

    【讨论】:

      猜你喜欢
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      相关资源
      最近更新 更多