我使用两个共享内核的卷积层tf.layers.conv2d。各层的区别仅在于内核约束,如下所示:1.层不使用任何约束,2.层使用tf.abs作为约束。 该约束未在图中注册。另外2.卷积 conv2 的输出 应该是正值,因为它与tf.abs(kernel)卷积在一起,不是这种情况。
代码:
conv1 = tf.layers.conv2d(inputs=input_im,
filters=num_filters,
kernel_size=filter_size,
use_bias=False,
kernel_initializer=kernel_initializer,
kernel_constraint=None,
trainable=True,
name=name,
reuse=None)
conv2 = tf.layers.conv2d(inputs=input_im,
filters=num_filters,
kernel_size=filter_size,
use_bias=False,
kernel_initializer=kernel_initializer,
kernel_constraint=tf.abs,
trainable=True,
name=name,
reuse=True)