Tensorflow stride=2的2x2 deconv内核如何工作?

Tensorflow stride=2的2x2 deconv内核如何工作?,tensorflow,deep-learning,computer-vision,caffe,pytorch,Tensorflow,Deep Learning,Computer Vision,Caffe,Pytorch,例如,如果特征映射为8x8,则我使用这样的deconv,并且特征映射为16x16,我不清楚以下两者之间的区别: deconv(kernel_size=2, stride=2, padding='valid') 及 由于它们都将使功能图变大2倍,它们分别是如何工作的?我想您会发现,在上的解释和交互式演示非常有用 具体来说,设置stride=2将使输出形状加倍,而不管内核大小如何。 内核大小确定每个输入像素影响多少输出像素。 设置stride=2和kernel\u size=2只是在输出上“复制”

例如,如果特征映射为8x8,则我使用这样的deconv,并且特征映射为16x16,我不清楚以下两者之间的区别:

deconv(kernel_size=2, stride=2, padding='valid')


由于它们都将使功能图变大2倍,它们分别是如何工作的?

我想您会发现,在上的解释和交互式演示非常有用

具体来说,设置
stride=2
将使输出形状加倍,而不管内核大小如何。
内核大小
确定每个输入像素影响多少输出像素。
设置
stride=2
kernel\u size=2
只是在输出上“复制”内核。考虑这个一维的例子。假设您的内核是
[a,b]
,输入是
[a,b,…]
,那么输出是

[A*a, A*b, B*a, B*b, ...]
对于
kernel\u size=3
,输出变为

[A*a, A*b, A*c+B*a, B*b, B*c+C*a, ...] 
[A*a, A*b, A*c+B*a, B*b, B*c+C*a, ...]