我习惯于在Tensorflow中使用学习过滤器,应用于输入数据(或前一层的输出)。在TensorFlow中使用输入作为卷积过滤器
输入形状nn.conv2d
是[h,w,in_channels,out_channels]
,如果我的数据是形状[?,n1,n2,1]
(第一维是minibatch大小),那么我会为shape
其中m
是我要学习的过滤器的使用数量为conv2d
[h,w,1,m]
。
但是有可能使用输入本身作为过滤器吗?也就是说,我不想为每个minibatch切片学习相同的滤镜,而是希望对每个切片使用不同的滤镜 - 从输入直接派生的滤镜,我不知道。例如,如果我的输入数据由两部分组成,那么它们都是2D和I的小批次,例如5。 D1 = [ [1,2] , [3,4] , [5,6] , [7,8] , [9,0] ]
D1 = [ [0,1] , [2,0] , [3,2] , [8,1] , [0,0] ]
然后我想与[0,1]
与[2,0]
等执行的[1,2]
卷积,的[3,4]
(的尺寸适合在我的情况下,这仅仅是一个示范)。
使用nn.conv2d
可以这样做吗?如果没有,是否可以使用scan
或以其他方式使用?
谢谢。
这只是一个例子 - 在我的例子中,我确实有矩阵,我需要执行卷积。 – yoki
请指定您要卷积的两个操作数的形状。 – keveman
尺寸可以更改。卷积是在一个m×n矩阵和一个k×n滤波器(k
yoki