python - 在 tf.contrib.layers.optimize_loss 中使用指数衰减

标签 python tensorflow

tf.contrib.layers.optimize_loss 的文档提到可以给出 learning_rate_decay_fn ,例如tf.train.exponential_decay 。但是,对于建议的衰减函数,我没有找到如何传递附加参数( decay_stepsdecay_ratestaircase )。

第一次尝试:

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 (尝试将“值”转换为张量但失败。错误:不支持任何值)。可能是因为该函数是 python 函数而不是 TensorFlow 操作。

第二次尝试:

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_loss直接函数也失败了(因为参数没有被传递下来,而是直接被视为函数的参数,这一定会失败。)

如何传递必要的参数?

最佳答案

我认为你的意思是在my_decay的定义中说return tf.train.exponential_decay(...

关于python - 在 tf.contrib.layers.optimize_loss 中使用指数衰减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078650/

相关文章:

python - 在 Python 中固定数字 base64 编码和解码

tensorflow - 没有广播 tf.matmul 在 tensorflow 中的 4D 3D 张量

Tensorflow Dataset API 在完成一个 epoch 后恢复迭代器

python-3.x - TypeError : Invalid shape (100, 100, 1) for image data 当plot image

python - Tensorboard 类型错误 : __init__() got an unexpected keyword argument 'serialized_options'

ios - ios上的tensorflow,搭建没问题,但是运行的时候报错,无法创建Session,Xcode-log如下

python - 我如何使用 Ruby 创建一个 "EXE",就像 DropBox 使用 Python 一样?

python - 如何从 Node.js AWS Lambda 函数运行 Python 脚本

python - 在python中导入字典

python - 无法连接到本地 MySQL,套接字问题