Python 在tf.contrib.layers.optimize_损耗中使用指数衰减

Python 在tf.contrib.layers.optimize_损耗中使用指数衰减,python,tensorflow,Python,Tensorflow,tf.contrib.layers.optimize\u loss的文档提到了提供学习率\u衰减\u fn的可能性,例如tf.train.指数衰减。但是,对于建议的衰减函数,我没有找到如何传递附加参数(衰减步骤,衰减速率和楼梯) 第一次尝试: def my_decay(a, b): tf.train.exponential_decay(a, b, decay_steps=5000, decay_rate=0.5, staircase=True

tf.contrib.layers.optimize\u loss
的文档提到了提供
学习率\u衰减\u fn
的可能性,例如
tf.train.指数衰减
。但是,对于建议的衰减函数,我没有找到如何传递附加参数(
衰减步骤
衰减速率
楼梯

第一次尝试:

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
)
train_op = tf.contrib.layers.optimize_loss(
    loss,
    global_step=global_counter,
    learning_rate=FLAGS.learning_rate,
    optimizer=optimizer,
    learning_rate_decay_fn=tf.train.exponential_decay(decay_steps=5000, decay_rate=0.5,
                               staircase=True, name="LR_decay")
)
这将导致ValueError(尝试将“值”转换为张量,但失败。错误:不支持任何值)。可能是因为函数是python函数而不是TensorFlow op

第二次尝试:

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
)
train_op = tf.contrib.layers.optimize_loss(
    loss,
    global_step=global_counter,
    learning_rate=FLAGS.learning_rate,
    optimizer=optimizer,
    learning_rate_decay_fn=tf.train.exponential_decay(decay_steps=5000, decay_rate=0.5,
                               staircase=True, name="LR_decay")
)
它抱怨缺少2个位置参数(因为调用缺少参数的函数不会返回函数,而是导致尝试求值)

另一次尝试将位置参数直接添加到
optimize\u loss
函数中也失败了(因为参数不会向下传递,而是被视为直接添加到函数中的参数,这必须失败。)


我怎样才能传递必要的参数呢?

我想你的意思是说
返回tf.train.exponential\u decay(…
我的decay

的定义中,
哎哟,那太尴尬了。无论如何,谢谢。