首页 > 解决方案 > tf.layers.conv2d 的掩码操作

问题描述

我输入了一个具有以下形式的张量 (batch_size, h, w, number_channel) 我想要做的是:屏蔽值为 255 的张量的值,并且在卷积网络的操作期间不要使用它们。

这是代码:

def gen_conv(x, cnum, ksize, stride=1, rate=1, name='conv',
             padding='SAME', activation=tf.nn.elu, training=True,
             kernel_initializer=None):
    """Define conv for generator.

    Args:
        x: Input.
        cnum: Channel number.
        ksize: Kernel size.
        stride: Convolution stride.
        Rate: Rate for or dilated conv.
        name: Name of layers.
        padding: Default to SYMMETRIC.
        activation: Activation function after convolution.
        training: If current graph is for training or inference, used for bn.

    Returns:
        tf.Tensor: output

    """
    mask = tf.keras.layers.Masking(mask_value=255.0)(x)

    x = tf.layers.conv2d(x, cnum, ksize, stride, dilation_rate=rate,
                         activation=None, padding=padding, name=name,
                         kernel_initializer=kernel_initializer) (mask)
    
    # We empirically found BN to help if not trained (works as regularizer)
    x = tf.layers.batch_normalization(x)

    x = activation(x)
    return x

TypeError:“张量”对象不可调用

如何将掩码添加到此网络?

标签: tensorflowconv-neural-networkmasktensor

解决方案


推荐阅读