如果使用加号代替 tf.add,tensorflow 是否仍能正确计算梯度?

A.R*_*avi 5 python tensorflow

如果我有一个相当复杂的成本方程,如下所示:

cost = tf.reduce_sum( tf.multiply( y , tf.log(y/abs(yy)))  + \
                      tf.multiply( (1 - y) , tf.log((1-y)/abs(1-yy)) ) )
Run Code Online (Sandbox Code Playgroud)

tensorflow 还会为此找出正确的反向传播方程吗?换句话说,我如何确定梯度计算正确?

pfm*_*pfm 5

如本anwser 中所述__add__op(__mul__以及顺便说一句)已过载,因此

cost = tf.reduce_sum(tf.add(
    tf.multiply( y , tf.log(y/abs(yy))),
    tf.multiply((1 - y) , tf.log((1-y)/abs(1-yy)))
))
Run Code Online (Sandbox Code Playgroud)

相当于

cost = tf.reduce_sum(y * tf.log(y/abs(yy))  + (1 - y) * tf.log((1-y)/abs(1-yy))) 
Run Code Online (Sandbox Code Playgroud)