Python ``tensorflow.gradients()`` 符号梯度计算函数与实例


发布日期 : 2020-08-30 09:32:15 UTC

访问量: 10 次浏览

Python – tensorflow.gradients()

TensorFlow是谷歌设计的开源Python库,用于开发机器学习模型和深度学习神经网络。

gradients()
用于获取xs中ys之和对x的符号导数。当启用急切执行时,它不起作用。

语法:
tensorflow.gradients( ys, xs, grad_ys, name, gate_gradients, aggregation_method, stop_gradients, unconnected_gradients)

参数:

  • ys:它是一个张量或需要被区分的张量列表。
  • xs: 它是一个张量或张量列表,用来进行区分。
  • grad\_ys(可选): 它是一个张量或张量列表,用于计算y的梯度。
  • name(可选): 它用于将梯度操作组合在一起。它的默认值是渐变。
  • gate\_gradients (可选): 它用于避免竞赛条件。如果为真,它将在一个操作的梯度周围添加一个元组。
  • aggregation\_method(可选): 它的值是一个定义在AggregationMethod类中的常数。
  • stop\_gradients(可选): 它是一个张量或张量列表,不要通过它来进行区分。
  • unconnected\_gradients(可选): 它指定了当给定的输入张量是不连接的时候返回的梯度值。可接受的值是UnconnectedGradients类中定义的常数。

返回:
一个长度为len(xs)的张量列表,其中每个张量都是ys中y和xs中x的sum(dy/dx)。

示例 1:

# Importing the library
import tensorflow as tf

# Defining function
@tf.function
def gfg():
  a = tf.ones([1, 2])
  b = 5*a

  # Calculating gradient
  g1 = tf.gradients([b+a], [a])

  # Printing result
  print("res: ",g1)

# Calling the  function
gfg()

输出:

res: [<tf.Tensor 'gradients/AddN:0' shape=(1, 2) dtype=float32>]

示例 2:

# Importing the library
import tensorflow as tf

# Defining function
@tf.function
def gfg():
  a = tf.ones([1, 2])
  b = 5*a

  # Calculating gradient
  g1 = tf.gradients([b], [a])

  # Printing result
  print("res: ",g1)

# Calling the  function
gfg()

输出:

res: [<tf.Tensor 'gradients/mul_grad/Mul_1:0' shape=(1, 2) dtype=float32>]