2017-09-06 15 views
1

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関数に位置引数を追加する別の試み(失敗しなければならない引数が受け継がれず、直接関数の引数として見られないように、。)

私は必要を渡すことができますどのように議論?

答えて

0

return tf.train.exponential_decay(...というのは、my_decayの定義にあると思います。

+0

恥ずかしがり屋です。とにかくありがとう。 – user1965813

関連する問題