【问题标题】:How do I properly mask values in my Convolutional Neural Network如何正确屏蔽卷积神经网络中的值
【发布时间】:2021-04-18 01:39:44
【问题描述】:

我正在为一些图像创建一个编码器-解码器 CNN。每个图像都有一个围绕中心的几何形状 - 圆形、椭圆形等。

我希望我的 CNN 忽略此形状中的所有值。我所有的输入数据值都已标准化为 0-1 左右。我将所有形状值设置为 0。

我认为将它们设置为零意味着它们不会被更新,但是,我的编码器-解码器 CNN 的输出会改变形状。

我可以做些什么来确保这些值保持不变并且不会更新?

谢谢!

【问题讨论】:

  • “忽略”这些值是什么意思?编码器-解码器是指自动编码器吗?例如,您是否尝试在将图像推过瓶颈的潜在空间后对其进行重建?
  • 我希望几何图形保持固定。我正在重建流过不同形状的未来时间步长。因此,我希望自动编码器只学习形状周围的特征。
  • 我希望输出的形状在同一个地方,不受影响。与重新创建输入的自动编码器不同,此自动编码器正在创建输入的不同时间步长。所以,形状周围的数据应该改变,而不是实际的形状。

标签: python numpy machine-learning pytorch conv-neural-network


【解决方案1】:

我想你正在寻找"partial convolution"。这是 Guilin Liu 及其同事发表的一项工作,它扩展了卷积以获取输入掩码和输入特征图,并将卷积仅应用于未掩码的像素。他们还建议如何补偿掩码边界上的像素,内核“看到”有效像素和被掩码的像素。

请注意,它们的实现可能会在自动混合精度 (AMP) 下运行时出现问题。

【讨论】:

  • 非常感谢!我很难理解这是如何工作的。我是否在输入数据中传入另一个通道,仅包含我想要屏蔽的像素?然后使用'PartialConv2d'?如何指定屏蔽通道?
猜你喜欢
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 2020-11-01
  • 2020-10-07
相关资源
最近更新 更多