tf.contrib.layers.optimize_loss
のドキュメントでは、learning_rate_decay_fn
を与える可能性が記載されています。 tf.train.exponential_decay
。しかし、提案された減衰関数のために、私は追加の引数(decay_steps
,とstaircase
)を渡す方法を見つけませんでした。tf.contrib.layers.optimize_lossの指数関数的減衰を使用する
初の試み:
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
関数に位置引数を追加する別の試み(失敗しなければならない引数が受け継がれず、直接関数の引数として見られないように、。)
私は必要を渡すことができますどのように議論?
恥ずかしがり屋です。とにかくありがとう。 – user1965813