在中使用指数衰减tf.contrib.layers公司.优化损失

2024-10-17 06:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

tf.contrib.layers.optimize_loss的文档提到了给出learning_rate_decay_fn的可能性,例如tf.train.exponential_decay。但是,对于建议的衰变函数,我没有找到如何传递附加参数(decay_stepsdecay_rate和{})。在

第一次尝试:

def my_decay(a, b):
tf.train.exponential_decay(a, b, decay_steps=5000, decay_rate=0.5,
                           staircase=True, name="LR_decay")


train_op = tf.contrib.layers.optimize_loss(
    loss,
    global_step=global_counter,
    learning_rate=FLAGS.learning_rate,
    optimizer=optimizer,
    learning_rate_decay_fn=my_decay
)

这将导致ValueError(试图将“values”转换为张量,但失败。错误:无值不受支持)。可能是因为函数是python函数而不是TensorFlow操作

第二次尝试:

^{pr2}$

它抱怨缺少2个位置参数(因为调用缺少参数的函数不会返回函数,但会导致尝试求值)。在

另一次直接向optimize_loss函数添加位置参数的尝试也失败了(因为参数没有传递,而是被视为直接给函数的参数,这肯定会失败。)

我怎样才能传递必要的论点?在


Tags: 函数参数ratemylayerstftrainsteps