无法向 Keras 层内的权重添加随机噪声



我试图在Keras的卷积层前向传递期间添加随机噪声。我编写了一个包装器类,它会在计算卷积之前向权重添加噪声。对自我的任何添加或修改。权重对最终值没有影响。也没有错误。有人能帮忙吗?

class Conv2D_New(tf.keras.layers.Conv2D):       
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

def call(self, inputs):
random_noise = tf.random.normal(stddev=0.01, shape=self.weights[0].shape)
self.weights[0] = self.weights[0] + random_noise
tf.print(self.weights[0]) ########### NO CHANGE ???? ##################
return super().call(inputs)

如果您查看文档中的示例,您会注意到它使用了Tensor方法assign_add。在您的情况下尝试使用相同的方法:

self.weights[0].assign_add(random_noise)

相关内容

  • 没有找到相关文章

最新更新