如果我有一个相当复杂的成本方程式:
cost = tf.reduce_sum( tf.multiply( y , tf.log(y/abs(yy))) + \
tf.multiply( (1 - y) , tf.log((1-y)/abs(1-yy)) ) )
tensorflow 还会为此计算出正确的反向传播方程吗?换句话说,我如何确定梯度计算正确?
最佳答案
如本 anwser 中所述, __add__
操作(和 __mul__
以及 btw)被重载,因此
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)))
))
相当于
cost = tf.reduce_sum(y * tf.log(y/abs(yy)) + (1 - y) * tf.log((1-y)/abs(1-yy)))
关于python - 如果您使用加号而不是 tf.add,tensorflow 是否仍会正确计算梯度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48767565/