tf.contrib.eager.implicit_value_and_gradients
Возвращает функцию, которая дифференцирует f по переменным.
tf.contrib.eager.implicit_value_and_gradients(
f
)
Оборачиваемая функция возвращает значение и градиент f, когда вызывается с теми же аргументами. Градиент вычисляется по отношению ко всем обучаемым переменным TFE, к которым обращается f.
Эта функция полезна, когда точный набор переменных для дифференцирования не известен заранее.
Пример:
dense_layer = tf.compat.v1.layers.Dense(1)
def loss(x, y):
return tf.reduce_sum(tf.square(dense_layer(x) - y))
# Obtain the gradient function.
val_grad_fn = tfe.implicit_value_and_gradients(loss)
# Invoke the gradient function with concrete values of x and y.
x = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
y = tf.constant([[10.0], [20.0]])
value, grads_and_vars = val_grad_fn(x, y)
print('Value of loss: %s' % value)
# Apply the gradients to Variables.
optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.1)
optimizer.apply_gradients(grads_and_vars)
| Аргументы | |
|---|---|
f | Функция, подлежащая дифференцированию. Если f возвращает скаляр, этот скаляр будет дифференцирован. Если f возвращает тензор или список тензоров, по умолчанию будет вычислен скаляр, сложив все их значения для получения единственного скаляра. |
| Возвращает | |
|---|---|
| Функция, которая, при вызове, возвращает пару кортежей. Первый элемент — это значение, к которому вычисляется функция. Второй элемент — список пар (градиент, переменная). |
| Исключения | |
|---|---|
ValueError | если f возвращает None. |
© 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/implicit_value_and_gradients