当你的一个通道是输入数据,另一个通道是输出数据时,如何使用CNN?

问题描述 投票:0回答:1

假设我有一些训练数据。输入由两个数组组成,一个是定义灌溉多边形。另一种结构相同,但称为“障碍”,它描述不是灌溉区域但对喷头定位有影响的多边形。

最后,输出数据是喷头数组及其输出坐标。

因为如果仅表示为数组或图形,则该数据不一致(它可以具有任意数量的所述多边形和任意数量的洒水器,使得数据预处理后效率非常低),所以我考虑使用卷积神经网络,但方式略有不同。我想在 CNN 通道中表示数据,其中第一个通道仅保存有关灌溉多边形的数据,第二个通道将保存有关障碍物的数据,第三个通道当然保存有关洒水器的数据。我的问题是:

  1. 这可能吗?总的来说,我对神经网络很陌生,我想知道 CNN 是否应该用于处理图像之外的其他用途。如果不是 CNN,那么您会在这里使用什么?
  2. 如果是,是否有可能稍后当模型被训练为仅预测喷水器输出通道数据时仅馈送输入通道数据以进行预测?

我尝试使用图和普通的 ANN 数据预处理管道来制作这个神经网络。然而,填充/规范化/展平数据会使参数量太大,因为有些多边形可以用 8 个数字(4 个点)来描述,而有些则复杂得多。多边形和洒水器的数量也可能变化很大,这使得数据非常不均匀。

tensorflow keras deep-learning neural-network conv-neural-network
1个回答
0
投票

CNN 的要点在于,您拥有对卷积运算有意义的输入。这是至关重要的,因为 CNN 通过将输入与小内核进行卷积来将输入转换为输出。例如。对于 2D 图像,内核可以是 3x3 或 5x5 内核。这些内核是在训练中学习的。

更根本的是,当像素输入[X]和输入[X+dX]之间的关系很大程度上取决于 dX 而不是 X 时,卷积运算才有意义。

您似乎使用了多边形的参数表示,即角点。你不是在二维中绘制这些多边形,对吧?二维图像可以简单地用作输入:附近的点(小 dX)可能位于同一个多边形中。但是角点数组呢?没有合理的卷积运算可以对它们起作用。

可以可能将多边形转换为固定长度的表示形式。您始终可以将一条边折成两半并插入一个“假”(180 度)角。在精度损失有限的情况下,您可以丢弃一些角点。另一种可能的方法是将复杂的多边形分成两个单独的多边形。

但是考虑到问题域(听起来相当二维),我将使用 CNN 并将参数化多边形表示转换为真实图像。

© www.soinside.com 2019 - 2024. All rights reserved.