Spec-Zone.ru › TensorFlow 1.15

tf.contrib.eager.value_and_gradients_function

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

tf.contrib.eager.value_and_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
def f(x, y):
  return x * x * x * y - x * y * y

# Obtain a function that returns the function value and the 1st order
# gradients.
val_grads_fn = tfe.value_and_gradients_function(f)

x = 2.0
y = 3.0

# Invoke the value-and-gradients function.
f_val, (x_grad, y_grad) = val_grads_fn(x, y)
assert f_val.numpy() == (2 ** 3) * 3 - 2 * (3 ** 2)
assert x_grad.numpy() == 3 * (2 ** 2) * 3 - 3 ** 2
assert y_grad.numpy() == (2 ** 3) - 2 * 2 * 3

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

f_val, (y_grad,) = val_ygrad_fn(x, y)
assert f_val.numpy() == (2 ** 3) * 3 - 2 * (3 ** 2)
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/value_and_gradients_function

Spec-Zone.ru

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