Tensorflow:可训练的变量掩蔽

Tensorflow: Trainable Variable Masking

我正在研究一个卷积神经网络,它要求内核权重的某些部分不可训练。 tf.nn.conv2d(x, W) 将可训练变量 W 作为权重。我怎样才能使 W 的某些元素无法训练?

也许你可以拥有可训练的权重 W1、指示可训练变量位置的掩码 M 以及常量/不可训练的权重矩阵 W2,然后使用

W = tf.multiply(W1, tf.cast(M, dtype=W1.dtype)) + tf.multiply(W2, tf.cast(tf.logical_not(M), dtype=W2.dtype))