2016-01-25 21 views

Trả lời

8

Thuật ngữ cho chi phí/phân hủy trọng lượng không phải là một phần của trình tối ưu hóa trong TensorFlow.

Nó rất dễ dàng để bao gồm, tuy nhiên, bằng cách thêm hình phạt bổ sung cho các hàm chi phí với sự mất mát L2 trên trọng lượng:

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 chỉ đơn giản là 0.5 * tf.reduce_sum(v * v) và gradient cho trọng lượng cá nhân sẽ bằng đến lambda * w, phải tương đương với phương trình được liên kết của bạn.

+0

Cảm ơn bạn rất nhiều. Tôi cũng đã thực hiện phần này trong Theano, nó làm việc.Nhưng khi tôi thử điều này trong tensorflow, nó vẫn không thể có được kết quả mong đợi. khác nhau giữa chúng là gì? Vui lòng kiểm tra: http://stackoverflow.com/questions/35488019/whats-different-about-momentum-gradient-update-in-tensorflow-and-theano-like-th –

+0

Đã trả lời trong chủ đề khác. –

+0

cẩn thận không bao gồm các thành kiến ​​trong tổn thất này vì chúng cũng là tf.trainable_variables() – gizzmole

Các vấn đề liên quan