Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CNN中关于维度的混淆_Python_Matlab_Deep Learning_Conv Neural Network - Fatal编程技术网

Python CNN中关于维度的混淆

Python CNN中关于维度的混淆,python,matlab,deep-learning,conv-neural-network,Python,Matlab,Deep Learning,Conv Neural Network,上面的图片使用Matlab的深度学习工具箱生成,显示了为玩具示例创建的CNN的体系结构。输入图像的大小为25*20*7,每个大小为5*5的过滤器数量为15个,填充相同。第一个卷积conv1的输出是25*20*15,它进入大小为2*2的maxpooling 1操作,跨步1和填充相同 根据我的理解,maxpooling的作用是执行降维。但是,在我的代码中,由于填充设置为相同,我知道maxpooling的输出将保留其输入的空间维度,即25*20*15。这就是为什么MaxPoolig1的输出和maxpo

上面的图片使用Matlab的深度学习工具箱生成,显示了为玩具示例创建的CNN的体系结构。输入图像的大小为
25*20*7
,每个大小为
5*5
的过滤器数量为15个,填充相同。第一个卷积
conv1
的输出是
25*20*15
,它进入大小为
2*2
的maxpooling 1操作,跨步
1
和填充
相同

根据我的理解,maxpooling的作用是执行降维。但是,在我的代码中,由于填充设置为
相同
,我知道maxpooling的输出将保留其输入的空间维度,即
25*20*15
。这就是为什么MaxPoolig1的输出和maxpooling的其余部分与其输入具有相同的维度,并且其余层中的维度没有变化。例如,maxpooling的输出应该是:
(25-2+2*1/1)+1
=
23+2/1+1=25
。类似地,对于第二维度,maxpooling将产生:
(20-2+2*1/1)+1
=
18+2/1+1=20
。因此,maxpooling的输出应该是
25*20*15

这意味着maxpooling没有进行降维。因此,如果padding选项设置为
same
,是否应该删除maxpooling


请让我知道在执行maxpooling之后维度是如何相同的,如果维度相同,那么我应该删除此操作吗?还是我做错了什么?

tldr:如果要在每一步中减小图像大小,请使用padding=valid。这是默认选项

Maxpooilign通常用于下采样和减少过拟合

如果使用padding='same',则会将图像拉伸到输入大小,不会导致大小下降

在下面的示例中,输入大小为4*4,池为2*2,(默认)步长为2x2,因此输出为2*2


在keras上找到更多的例子。

对于卷积层和最大池层,填充的作用是不同的。如果卷积层中的padding=
same
,则表示输出大小(主要是高度和宽度)与输入大小相同。
另一方面,池层中的填充具有不同的功能。合并层的目的是减少空间维度(高度和宽度)。在池层中,padding=
same
并不意味着空间维度不变。当输入大小和内核大小不完全匹配时,需要在池中填充以弥补重叠。

您的问题不是特定于编程的。用于深入学习问题的帮助。好的,我已将问题张贴在那里。感谢您的回答。如果maxpooling的填充保持
相同
不会导致维度发生变化,那么使用
相同
选项有什么意义?我应该保留还是删除它?是的,您应该,如果您的目标是减少维度,您应该使用“padding=valid”。padding='same'还有其他用例,但它不如valid受欢迎,这就是为什么valid是默认选项。