tensorflowにL 2正規化損失を追加

1018 ワード

方法はいくつかありますが、まとめて使うと便利です.
1.tensorflow自動メンテナンスtf.GraphKeys.WEIGHTSコレクションは、(tf.add_to_collection())正規化罰をしたい変数を手動でコレクションに追加します.
次にregularizer=tfを作成する.contrib.layers.l2_regularizer(REGULARIZATION_RATE),
再適用関数regularization_loss = tf.contrib.layers.apply_regularization(regularizer=regurializer)は、対集合tfを得ることができる.GraphKeys.WEIGHTS内の変数の正規化項.
 
2.regularizer=tfを作成する.contrib.layers.l2_regularizer(REGULARIZATION_RATE),
変数の作成時にw 1=tfなどのregularizerを指定します.get_variable('w 1',[100,100],regularizer=regularizer)、tensorflowは変数を集合tfに加える.GraphKeys.REGULARIZATOIN_LOSSES,
そして正規化係数REGULARIZATION_を設定RATEは,上記の集合を取得することで正規化損失を得る.
regularization_loss = REGULARIZATION * sum( tf.get_collection(tf.GraphKeys.REGULARIZATION_LOSSES))。