使用Keras掩蔽像素或进行卷积LSTM分类

zvokhttg  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(83)

我有一个多波段图像序列,假设每个样本是大小为(50,6,30,30)的Tensor,其中50是序列中图像帧的数量,6是每个像素的波段数量,30 x30是图像的空间维度。Ground Truth Map的大小为30 x30,但它是7个类的one-hot编码(使用交叉熵损失),因此它是一个大小为(1,7,30,30)的Tensor。我想使用卷积和LSTM的组合(或使用集成的ConvLSTM 2D层)进行分类任务,但存在以下问题:
1-并非每个点在输出Map上都有有效标签(即一些独热向量是全零的),
2-并非每个像素在每个时间戳中都具有有效值。因此,在每个给定的时间戳处,像素中的一些可以针对其所有带值具有零值(意味着无效)。
我读了很多关于如何处理这个问题的问答,我认为我应该使用sample_weights选项来屏蔽无效的点和类,但我真的不确定如何做到这一点。Sample_weights应该独立地应用于每个像素和每个时间戳。我想如果我没有卷积部分(一种2D方法),我可以管理它。但是不明白卷积是如何工作的,因为卷积窗口中的像素值有些是有效的,有些是无效的。如果我在特定的时间屏蔽那些无效的像素(那我还是不知道怎么做),向前和向后传播和损失计算的链条会发生什么?我想它会毁了!寻求评论和帮助。

e4eetjau

e4eetjau1#

可能的解决方案:
问题1-对于根本不具有类别的像素,您可以引入具有标签(例如噪声)的新类别。这意味着不是在你的一个热编码,你有价值的,以及和权重将相应地产生为那些像素的噪声类这是一个间接的方式来实现同样的事情你做的样本权重原因在样本_weight technique你告诉keras或sklearn参数的权重或权重的样本比率是多少。
问题2-为了回答第2部分,考虑可能的用例,例如对于这些无效值,类值可以在热编码向量中存在,或者它将全为零?或者你也可以预处理并将它们添加到噪声类中,然后点2将由点1自动处理。

相关问题