使用 keras 时,您可以向优化器更新规则添加一个供优化器学习的术语吗?例如,在其 github 上的 keras 优化器代码的第 200 行( https://github.com/keras-team/keras/blob/master/keras/optimizers.py )上有一个 SGD 更新规则。您能否向 SGD 优化器添加一个简单的标量变量,将更新公式更改为
new_p = (p + self.momentum * v - lr * g)*new_variable
其中 new_variable 是一个限制在特定范围(例如 0 到 1)内的标量,并且 SGD 优化器必须了解 new_variable 的适当值?
人们会如何对优化器进行此类更改?
最佳答案
这听起来很奇怪,因为对于学习来说,有必要“获取损失函数相对于权重的梯度”。 (这个变量将是一个权重,因为它是 Keras 中的可训练变量)
但请注意,您提议的这个变量:
- 不参与损失函数
- 在计算梯度(该公式中的
g
)之后使用
因此,独立于 Keras,这种方法(在“反向传播”学习框架中学习学习率)有点不可能。
关于python-3.x - Keras 支持参数优化器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57539985/