Spec-Zone.ru › TensorFlow 1.15

tf.contrib.eager.gradients_function

Возвращает функцию, которая дифференцирует f по параметрам.

tf.contrib.eager.gradients_function(
    f, params=None
)

Пример:

# f(x, y) = (x ^ 3) * y - x * (y ^ 2)
# Therefore, the 1st order derivatives are:
#   df / dx = 3 * (x ^ 2) * y - y ^ 2
#   df / dy = x ^ 3 - 2 * x * y
# The 2nd order derivatives with respect to x is:
#   d^2 f / (dx)^2 = 6 * x * y
def f(x, y):
  return x * x * x * y - x * y * y

# Obtain a function that returns 1st order gradients.
grad_fn = tfe.gradients_function(f)

x = 2.0
y = 3.0

# Invoke the 1st order gradient function.
x_grad, y_grad = grad_fn(x, y)
assert x_grad.numpy() == 3 * (2 ** 2) * 3 - 3 ** 2
assert y_grad.numpy() == (2 ** 3) - 2 * 2 * 3

# Obtain a function that returns the 2nd order gradient with respect to x.
gradgrad_fn = tfe.gradients_function(lambda x, y: grad_fn(x, y)[0])

# Invoke the 2nd order gradient function.
x_gradgrad = gradgrad_fn(x, y)[0]
assert x_gradgrad.numpy() == 6 * 2 * 3

# To obtain a callable that returns the gradient(s) of `f` with respect to a
# subset of its inputs, use the `params` keyword argument with
# `gradients_function()`.
ygrad_fn = tfe.gradients_function(f, params=[1])

(y_grad,) = ygrad_fn(x, y)
assert y_grad.numpy() == (2 ** 3) - 2 * 2 * 3

Обратите внимание, что дифференцируемыми являются только тензоры с вещественными или комплексными типами данных.

Аргументы
f функция, подлежащая дифференцированию. Если f возвращает скаляр, этот скаляр будет дифференцирован. Если f возвращает тензор или список тензоров, по умолчанию вычисляется скаляр, суммируя все их значения для получения одного скаляра. При необходимости тензоры можно поэлементно умножить на тензоры, переданные в качестве ключевого аргумента dy возвращаемой функции градиента.
params список имен параметров f или список целых чисел, индексирующих параметры, по которым мы будем дифференцировать. Передача None дифференцирует по всем параметрам.
Возвращаемое значение
функция, которая при вызове возвращает значение f и градиент f по всем params. Функция принимает дополнительный необязательный ключевой аргумент dy. Его установка позволяет вычислять векторные произведения Якоби для векторов, отличных от вектора единиц.
Исключения
ValueError если параметры не все строки или не все целые числа.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/eager/gradients_function

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API