私は3つの隠れたレイヤーを持つニューラルネットワークを持っています。これは「純粋な」勾配降下で、あるいはより洗練された手法で訓練することができます。私はまた、私の問題では、勢いに基づいた最適化手法(アダム、アダデッタ、勢い)がはるかに優れていることに気付きました。テンソルフローの特定のレイヤーで運動量を無効にするにはどうすればよいですか?
今興味深い部分です。設計上、NNの第1層で勢いを無効にしたい。つまり、2番目と3番目のレイヤーでAdamでウェイトを更新したいのですが、最初のレイヤーでは単純なグラデーションディセントを使用します。
私はいつも自分のオプティマイザを書くことができます:tf.gradients(loss, tf.trainable_variables())
でグラデーションを計算してから、自分で勢いをつけてください。しかし、すべてのレイヤーで特別なオプティマイザパラメータを使用するオプションがあるといいでしょう。誰かがそのようなことをする方法について聞いたことがありますか?
ネットワークのレイヤーはどのように定義しますか? – sygi
特別何も、私は考えて '' 'W_1 = tf.Variable( tf.truncated_normal([HIDDEN_0_SIZE、HIDDEN_1_SIZE]、 STDDEV = 1/np.sqrt(HIDDEN_0_SIZE))、 名= 'W') B_1 = TF .variable(tf.zeros([HIDDEN_1_SIZE])、name = 'b') hidden_1 = tf.matmul(activation_0_drop、W_1)+ b_1 activation_1 = tf.nn.relu(hidden_1、name = 'activation') activation_1_drop = tf.nn.dropout(activation_1、keep_prob) '' 'なぜ、マークダウンが新しい行をすべて削除するのか分かりません。( – iezepov
あなたは投稿を編集すると新しい行が表示されますそこに:) – sygi