【发布时间】:2020-01-09 11:55:08
【问题描述】:
使用 pyTorch 和 tensorflow (TF),我好奇 Adam 优化器是如何实现的。而且我不知道我是否错了,但在我看来,这两种实现方式不同,而 pyTorch 的一种是来自https://arxiv.org/pdf/1412.6980.pdf 的原始实现。
我的问题来自 eps 参数。使用 TF 实现似乎会导致此参数的 time-and-b2 依赖,即
q(t+1) = q(t) - \gamma * sqrt[(1-b2^t)]/(1-b1^t) * m(t)/[sqrt[v(t)]+eps]
在原始算法符号中可以重新表述为
q(t+1) = q(t) - \gamma * mhat(t)/[sqrt[vhat(t)]+ eps/sqrt[(1-b2^t)]]
这指出了 eps 参数的变化,这在原始算法和 pyTorch 实现中都不是这种情况。
我错了吗?还是众所周知? 感谢您的帮助。
【问题讨论】:
标签: tensorflow pytorch adam