在我的硕士论文中,我正在将一个卷积操作从一个Matlab代码移植到TensorFlow(pythonapi)中。例外的是,在Matlab中使用了一个均匀的滤波器大小(6x6)。在
通过调试Matlab的输出和我的TensorFlow代码,我认识到来自Matlab的imfilter函数的作用方式与转速表nn.conv2dTensorFlow中的操作。我得到了不同的平均值和标准值,最小值和最大值是一样的。在
我可以确认,我在Matlab和TF上的权重值是相同的,并且经过了正确的整形。偏差只是一个标量,所以这也不是问题所在。在
我的假设是imfilter(Matlab)和转速表nn.conv2d(TF)不要使用相同的中心像素进行卷积,因为奇数核大小的输出是相似的。所以对于一个奇数的内核大小,两个函数的操作是相似的。在
下面是一段Matlab代码:imfilter(input_data(:,:,j), conv_subfilter, 'same', 0, 'conv');
conv帴u帴u型子过滤器是一个6x6x48的过滤器内核,它卷积一个宽度x高度x 48的图像-结果是一个深度为1的图像,对于TF和Matlab来说都是
下面是我的TF代码片段:
^{pr2}$
有人能告诉我内核中心是问题还是其他问题吗?
提前感谢您的帮助!