在“rmsprop.py”(在 TensorFlow 中)中有一个对方法apply_rms_prop的调用。此方法在“gen_training_ops.py”中定义。在此方法的定义中,有一条注释描述了它应该做什么:
ms <- rho * ms_{t-1} + (1-rho) * grad * grad
mom <- momentum * mom_{t-1} + lr * grad / sqrt(ms + epsilon)
var <- var - mom
但是我似乎找不到上面伪代码的实际python实现在哪里。我的猜测是它是在 cpython 中实现的,因为我能够找到文件“__pycache__/rmsprop.cpython-36.pyc”。但同样,执行上述伪代码的 cpython 实现在哪里?
我的目标是实现自己的梯度更新方法,所以需要看一些具体的实现例子(比如rmsprop、adam等)。任何帮助将非常感激!
您可以从Optimizer
类中实现自己的优化器。您必须实现至少一种方法_apply_dense
或_apply_sparse
。
adamax
使用纯已可用的 tensorflow ops的优化器的完整实现。
class AdamaxOptimizer(optimizer.Optimizer):
..
you can create slot variables implementing slot fucntion
def _create_slots(self, var_list):
...
def _apply_dense(self, grad, var):
implement your logic for gradient updates here.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句