如果我有一个相当复杂的成本方程,如下所示:
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 还会为此找出正确的反向传播方程吗?换句话说,我如何确定梯度计算正确?
如本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)