tf.gradients与tf.keras.backend.gradients的差异

2024-06-01 12:53:11 发布

您现在位置:Python中文网/ 问答频道 /正文

作为Tensorflow的新手,我试图理解tf.gradients和tf.keras.backend.gradients的底层功能之间的区别

后者用r.t代价函数求输入特征值的梯度

但对于前者,我不清楚它是计算成本函数的梯度还是输出概率(例如,用简单的前馈网络来考虑二进制分类的情况,这里输出概率是指单神经元最终层的S形激活结果,用二叉交叉熵给出代价)

我已经参考了tf.gradients的官方文档,但是它很短,很模糊(对我来说),我没有得到一个清晰的图片-文档中提到它只是“y”-它是成本还是产出概率

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


Tags: 函数文档功能backendtftensorflow概率keras
1条回答
网友
1楼 · 发布于 2024-06-01 12:53:11

它们基本上是一样的tf.keras是TensorFlow用于构建和训练深度学习模型的高级API。它用于快速原型、最先进的研究和生产tf.Keras基本上在后端使用Tensorflow。通过查看tf.Keras源代码here,我们可以看到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)

相关问题 更多 >