按照特定位置构建某种特殊的filter, 位置索引通过np.ix_(*o)给出
filt_inner = np.zeros([3] * ndims)
for j in range(ndims):
o = [[1]] * ndims
##构建特定索引位置
o[j] = [0, 2]
##按照给定的索引位置赋值
filt_inner[np.ix_(*o)] = 1
# full filter, that makes sure the inner filter is applied
# ith feature to ith feature
##最终得到的filter是ndims组的,并且只在对角线的位置上有filter值,其他位置为0,
##可以理解为是按通道进行滤波,只在特定的通道上进行滤波
filt = np.zeros([3] * ndims + [ndims, ndims])
for i in range(ndims):
filt[..., i, i] = filt_inner
按照这种方式,可以进一步进行learnable filter的改造