C. *_* Y. 5 python convolution computer-vision tensorflow
我需要在一批特征图对中执行 2D 交叉卷积(例如,像 MATLAB 的https://www.mathworks.com/help/signal/ref/xcorr2.html)。
为了澄清:
让X是B x W1 x H1 x C和Y是B x W2 x H2 x C。
我想要的输出是形状B x W2 x H2 x 1(假设我们将其X视为我们Y使用相同填充传递的“过滤器” ),其中输出的i第 -th1 x W2 x H2 x 1切片是X[i,:,:,:]和之间的互相关,Y[i,:,:,:]例如
tf.nn.conv2d(Y[i,:,:,:], X[i,:,:,:], [1,1,1,1], padding='SAME')
Run Code Online (Sandbox Code Playgroud)
有没有一种有效的方法来实现这个操作?
注意:如果X是,1 x W1 x H1 x C并且我们想Y在每个 slice将它与它进行互相关B,这很容易:
cross_corr = tf.nn.conv2d(
Y, tf.transpose(X, perm[1,2,3,0], [1,1,1,1], padding='SAME')
Run Code Online (Sandbox Code Playgroud)
它利用了 Tensorflowconv2d作为互相关实现的事实,以及我们可以在转置后将较小的张量视为本质上的过滤器的事实。这不能解决我的问题,因为我需要对B不同滤波器进行交叉卷积。
也许 conv3d 是一种可能性?
注2:vl_nnconv如果过滤器通道将输入通道分开,matconvnet 会执行此操作。Tensorflow 有等价物吗?
| 归档时间: |
|
| 查看次数: |
3536 次 |
| 最近记录: |