2017-01-07 8 views
1

あなたはtf.abs()でコスト関数を宣言してから、自動勾配生成(https://github.com/nfmcclure/tensorflow_cookbook/blob/master/03_Linear_Regression/04_Loss_Functions_in_Linear_Regressions/04_lin_reg_l1_vs_l2.pyを参照)に渡すことができるようです。TensorFlowはL1正規化の微分をどのように扱いますか?

しかし私達はabs()が分化できないことを知っています。

これはTensorflowでどのように行われますか? [-1,1]に数字をランダムに投げるだけですか?

誰かが偉大な実装を教えていただけたら嬉しいです。ありがとう!

(私はgitのにtensorflow.pyを探したが、それは存在さえしていない)

答えて

0

f(x) = abs(x)x=0を除き、どこでも微分可能です。派生それは等しい:

abs derivative

をだから、唯一の問題は、tensorflowがx=0で導関数を実装する方法です。これは手動で確認できます。

import tensorflow as tf 
x = tf.Variable(0.0) 
y = tf.abs(x) 
grad = tf.gradients(y, [x])[0] 
with tf.Session() as sess: 
    sess.run(tf.global_variables_initializer()) 
    print(sess.run(grad)) 

0.0が表示されます。

関連する問題