Difference - tf.gradients vs tf.keras.backend.gradients



作为Tensorflow的新手,我正在努力理解tf.gradients和tf.keras.packend.gradients.的底层功能之间的区别

后者通过成本函数求出输入特征值的梯度。

但我不清楚前者是计算成本函数上的梯度还是输出概率(例如,考虑使用简单前馈网络的二进制分类的情况。这里的输出概率是指单个神经元的最后一层的Sigmoid激活结果。成本由二进制交叉熵给出(

我参考了tf.gradients的官方文档,但(对我来说(它简短而模糊,我没有得到一个清晰的画面-文档中提到它只是"y"-它是成本还是输出概率?

为什么我需要渐变?实现基于梯度的基本特征属性。

它们基本相同。tf.keras是TensorFlow用于构建和训练深度学习模型的高级API。它用于快速原型设计、最先进的研究和生产。tf.Keras在其后端基本上使用Tensorflow。通过查看这里的tf.Keras源代码,我们可以看到tf.keras.backend.gradients确实使用了tf.gradients:

# Part of Keras.backend.py
from tensorflow.python.ops import gradients as gradients_module
@keras_export('keras.backend.gradients')
def gradients(loss, variables):
"""Returns the gradients of `loss` w.r.t. `variables`.
Arguments:
loss: Scalar tensor to minimize.
variables: List of variables.
Returns:
A gradients tensor.
"""
# ========
# Uses tensorflow's gradient function
# ========
return gradients_module.gradients(
loss, variables, colocate_gradients_with_ops=True)

最新更新