为简单起见,假设图像只有1个通道,我们有一个大小为[2,2]的滤波器,可以写成W = [[a,b],[c,d]],我想使用这组参数可以进行2次卷积,首先只是使用W本身:
输出= tf.nn.conv2d(输入,W)
第二次卷积,我想使用过滤器W_2 = [[d,c],[b,a]],它基本上是W的某种“转置”。它需要与W共享参数。我应该怎么写张量流中的这个吗?
非常感谢!
答案 0 :(得分:0)
您可以反转权重:
import tensorflow as tf
w = tf.Variable([[1, 2.], [3, 4]])
w_transposed = w[::-1, ::-1]
grad = tf.gradients(w_transposed, w)[0]
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print('Values')
print(w.eval())
print(w_transposed.eval())
print('Gradient')
print(grad.eval())
打印
Values
[[1. 2.]
[3. 4.]]
[[4. 3.]
[2. 1.]]
Gradient
[[1. 1.]
[1. 1.]]