2017-07-19 4 views
1

私はCNN、PythonでTensorFlowライブラリを使用します。TensorFlowでCNNアルゴリズムの確率的勾配降下オプティマイザを開発するにはどうすればよいですか?

私は、次のパラメータでCNNsオプティマイザのための確率的勾配降下オプティマイザを開発したいと思います:

learning rate = 0.05, 
decay = 1e-6, 
Nesterov momentum 0.9 

私はそれを達成するために自分のコードを変更する必要がありますどのように知っていただきたいと思います。ここに私がこれまでに持っているコードはあります:

ありがとう。

答えて

1

これは簡単にMomentumOptimizer(https://www.tensorflow.org/api_docs/python/tf/train/MomentumOptimizer)と指数関数的減衰(https://www.tensorflow.org/versions/r0.12/api_docs/python/train/decaying_the_learning_rate)を使用することによって達成することができます。

global_step = tf.Variable(0, trainable=False) 
starter_learning_rate = 0.05 
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step, 
             1000, 0.96, staircase=True) 

optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=0.9, use_nesterov=True).minimize(cost, global_step=global_step) 
+0

私はあなたのアルゴリズムが、コスト関数の戻りNaN値を使用します。これは私のコスト関数です:コスト= tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = pred、labels = y)) – MSN

+0

瞬時に、または少数のエポックの後に?それはアダムと一緒に働く? –

+0

はい、それはアダムと仕事をしていますが、私が勢いをつけると、これは私の結果です: – MSN

関連する問題