如何在 tensorflow 自定义优化器中指定自定义权重更新



在自定义优化器中,如果损失函数没有减少,我想用随机值更新权重。

但是,我看不到如何在您可以覆盖的方法(resource_apply_dense、resource_apply_sparse、create_slots get_config(中做到这一点。它们都没有传递损失函数。

我已经尝试覆盖 minimize((,但这在标准训练循环中没有调用。

有什么想法吗?

如果您正在编写自定义优化器,我认为应用它的最简单方法是显式定义层。在标准的前馈神经网络中,如果x是输入,那么h=tf.tanh(tf.matmul(x,W)+b)就是第一个隐藏层的示例。同样,您可以获得更多图层。然后 W 和 b 是您需要更新的变量。训练循环如下所示:

trainable_variables=[W,b]
for i in range(1000):
optimizer.minimize(loss, trainable_variables)

但是使用您自己的优化器而不是来自 Keras 的优化器。

最新更新