当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python tf.compat.v1.test.compute_gradient用法及代码示例

计算并返回理论和数值雅可比行列式。 (已弃用)

用法

tf.compat.v1.test.compute_gradient(
    x, x_shape, y, y_shape, x_init_value=None, delta=0.001, init_targets=None,
    extra_feed_dict=None
)

参数

  • x 张量或张量列表
  • x_shape x 作为元组或整数数组的维度。如果 x 是一个列表,那么这是形状列表。
  • y 张量
  • y_shape y 作为元组或整数数组的维度。
  • x_init_value (可选)与 "x" 形状相同的 numpy 数组,表示 x 的初始值。如果 x 是一个列表,这应该是一个 numpy 数组的列表。如果没有,该函数将选择一个随机张量作为初始值。
  • delta (可选)扰动量。
  • init_targets 要运行以初始化模型参数的目标列表。
  • extra_feed_dict dict 允许在雅可比计算期间修复指定的张量值。

返回

  • 两个二维 numpy 数组,表示 dy/dx 的理论和数值雅可比行列式。每个都有"x_size"行和"y_size"列,其中"x_size"是x中的元素数,"y_size"是y中的元素数。如果 x 是一个列表,则返回两个 numpy 数组的列表。

警告:此函数已弃用。它将在未来的版本中删除。更新说明:在2.0中使用tf.test.compute_gradient,对函数支持更好。请注意,两个版本的用法不同,因此需要更改代码。

如果 xy 是复数,雅可比仍然是实数,但相应的雅可比维度将是两倍大。即使输入和输出都很复杂,这也是必需的,因为 TensorFlow 图不一定是全纯的,并且可能具有不能表示为复数的梯度。例如,如果 x 是复杂的形状 [m]y 是复杂的形状 [n] ,每个雅可比 J 将具有形状 [m * 2, n * 2]

J[:m,:n] = d(Re y)/d(Re x)
J[:m, n:] = d(Im y)/d(Re x)
J[m:,:n] = d(Re y)/d(Im x)
J[m:, n:] = d(Im y)/d(Im x)

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.test.compute_gradient。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。