tf.control_dependencies
Обёртка для Graph.control_dependencies() с использованием стандартной графы.
tf.control_dependencies(
control_inputs
) -> Graph._ControlDependenciesController
Использование в блокнотах
| Используется в учебных пособиях |
|---|
См. tf.Graph.control_dependencies для получения дополнительных сведений.
В TensorFlow 2 с жадным и/или Autograph, этот метод, как правило, не нужен, так как операции выполняются в ожидаемом порядке благодаря автоматическим зависимостям управления. Используйте его только для ручного управления порядком, например, как обходное решение известных проблем, таких как tf.function с tf.debugging.assert* и tf.py_function. Например:
@tf.function(
input_signature=[tf.TensorSpec([None, None], tf.float32),
tf.TensorSpec([None, None], tf.float32)])
def my_assert_func_1(x, bias):
# `tf.function` attempts to execute `tf.math.add` in parallel to
# `assert_equal`. As a result an error can get raised from `tf.math.add`
# without triggering the assertion error.
tf.assert_equal(tf.shape(x)[1],
tf.shape(bias)[1],
message='bad shape')
return x + bias# Error raised in either `add` or `assert` my_assert_func_1(tf.ones((2, 5)), tf.ones((2, 7))) Traceback (most recent call last): InvalidArgumentError: ...
@tf.function(
input_signature=[tf.TensorSpec([None, None], tf.float32),
tf.TensorSpec([None, None], tf.float32)])
def my_assert_func_2(x, bias):
with tf.control_dependencies(
[tf.assert_equal(tf.shape(x)[1],
tf.shape(bias)[1],
message='bad shape')]):
return x + bias# Error raised in `assert` my_assert_func_2(tf.ones((2, 5)), tf.ones((2, 7))) Traceback (most recent call last): InvalidArgumentError: ...
При включенном жадном выполнении любой вызываемый объект в списке control_inputs будет вызван.
| Аргументы | |
|---|---|
control_inputs | Список объектов Operation или Tensor, которые должны быть выполнены или вычислены перед запуском операций, определённых в контексте. Может также быть None для очистки зависимостей управления. При включенном жадном выполнении любой вызываемый объект в списке control_inputs будет вызван. |
| Возвращаемое значение | |
|---|---|
| Менеджер контекста, который задаёт зависимости управления для всех операций, созданных в контексте. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/control_dependencies