2016-01-25 15 views

Odpowiedz

8

Pojęcie kosztu/rozkładu wagi nie jest częścią optymalizatora w TensorFlow.

Łatwo to jednak poprzez dodanie dodatkowej kary do funkcji kosztu z utratą L2 o masach:

C = <your initial cost function> 
l2_loss = tf.add_n([tf.nn.l2_loss(v) for v in tf.trainable_variables()]) 
C = C + lambda * l2_loss 

tf.nn.l2_loss(v)link jest po prostu 0.5 * tf.reduce_sum(v * v) i gradienty dla poszczególnych wag będzie równa do lambda * w, które powinny być równoważne z połączonym równaniem.

+0

Dziękuję bardzo. Też wdrożyłem tę część w Theano, zadziałało. Ale kiedy próbuję tego w tensorflow, to wciąż nie może uzyskać oczekiwanego rezultatu. co jest między nimi różne? Proszę sprawdzić: http://stackoverflow.com/questions/35488019/whats-different-about-momentum-gradient-update-in-tensorflow-and-theano-like-th –

+0

Odpowiedź w drugim wątku. –

+0

należy uważać, aby nie uwzględnić błędów w tej utracie, ponieważ są one również tf.trainable_variables() – gizzmole