Python 在处理高光谱图像时,3D-CNN输入的第五维度应该是什么?
我有一张高光谱图像,其尺寸Python 在处理高光谱图像时,3D-CNN输入的第五维度应该是什么?,python,keras,conv-neural-network,Python,Keras,Conv Neural Network,我有一张高光谱图像,其尺寸S*S*L,其中S*S是空间大小,L表示光谱带的数量 现在,我的X(图像数组)的形状是:(1,145,145,200),其中1是示例数,145是图像的长度和宽度,200是图像的通道数 我想将这个图像的小窗口(具有类似于W*W*L;W
S*S*L
,其中S*S
是空间大小,L
表示光谱带的数量
现在,我的X(图像数组)的形状是:(1,145,145,200)
,其中1是示例数,145是图像的长度和宽度,200是图像的通道数
我想将这个图像的小窗口(具有类似于W*W*L
;W(批次、长度、宽度、深度、通道)
在我看来,我缺少了一个空间维度,如何在不丢失任何信息的情况下将图像数组转换为5维数组
我在上面使用python和Keras。如果您想沿着通道的维度进行卷积,您应该在通道的位置添加一个单例维度。如果你不想沿着频道的维度卷积,你应该使用2D CNN。你想要的是2D CNN,而不是3D CNN。2D CNN已经支持多个通道,因此在高光谱图像中使用它应该不会有问题。通过添加单个维度,您的意思是将其重塑为
(11145145200,1)
。是的,或者您可以使用tf.expand_dims(X,axis=4)
。不,实际上我正在尝试实现一篇研究论文,因此,我特别希望使用3D CNN来实现这一点,因为根据论文,它有一些优势。因此,我想实现建议的方法,看看它是如何工作的!我已经按照你的建议用2D CNN做过一次了。@gopalkrizna到底是什么报纸?这篇文章可能提到了3D卷积,但实际上它和Keras的2D卷积是一样的。