モデルの定義では、にkernel_regularizer=tf.contrib.layers.l2_regularizer(scale=0.00001)
を使用して、各畳み込みレイヤの畳み込みカーネルを正規化しました。テンソルフローモデルの全損失に正則化損失を追加する必要がありますか?
私の質問は:いくつかのバッチインプットのためのネットワーク全体の総損失を計算するために、我々は次のように手動で正則損失を追加する必要があります:
reg_losses = tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES)
reg_constant = 0.01 # Choose an appropriate one.
loss = my_normal_loss + reg_constant * sum(reg_losses)
そしてreg_constant
を決定するには、yesであれば、どのように上記? scale
とreg_constant
の関係は何ですか?ありがとう。
こんにちは、ありがとうございました。うん、私が正しく理解していれば、 'reg_constant'は減量のためのグローバル倍率であり、' scale'は各層の各重さの局所的因子減量です(例えば畳み込み、完全連結)。 'caffe'のやり方とちょうど似ています。うん、あなたは絶対に正しいです、これらのハイパーパラメータを選択するためにグリッド検索が必要です。すべてのレイヤー、特に非常に深いネットワークでは、各ローカル減衰係数を選択することは本当に困難です。また、ウェイトを初期化する方法も非常に重要です。とても難しい... – mining