使用张量,lambdas和python变量绑定自定义学习率衰减

时间:2018-06-09 02:45:30

标签: python tensorflow machine-learning

我正在尝试构建自定义的TensorFlow估算器并对其进行训练。

我希望能够通过额外的参数修改其行为。具体来说,要设置优化程序,并指定依赖于纪元的学习速率的公式。

例如,理想情况下,我可以这样做:

model = tf.estimator.Estimator(
    model_fn=model_fn,
    params={
    ...
    "optimizer": tf.train.MomentumOptimizer(
        learning_rate=0.001 * tf.train.global_step()**(-0.75),
        momentum=0.5
        ),
    ...
    }
)
model.train()

我该怎么做呢?

我现在所知道的

经过一番探讨之后,对我来说很明显,上述方法不起作用,因为tf.train.global_step()取决于会话,而我至少没有会话直到我拨打model.train()

我也知道可能会有某种巫术让我将调用推迟到tf.train.global_step(),直到model_fn实际运行tf.Estimator

我只是对整个事情如何协同工作感到茫然,并希望得到一些帮助 1.解决这个问题 2.了解变量绑定的工作原理 3.理解tf.train.global_step()如何获取张量对象,以及张量究竟是什么。

可能重复

0 个答案:

没有答案