Spec-Zone.ru › TensorFlow

tf.variable_creator_scope

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

@tf_contextlib.contextmanager
tf.variable_creator_scope(
    variable_creator
)

Используется в блокнотах

Используется в руководстве
  • Проверка корректности и численной эквивалентности

Ожидается, что variable_creator — это функция со следующей сигнатурой:

def variable_creator(next_creator, **kwargs)

Если создатель хочет создать переменную, он должен в конечном итоге вызвать next_creator для её создания, а не вызывать напрямую Variable или ResourceVariable. Это позволяет комбинировать создателей. Создатель может создать несколько переменных, вернуть уже существующие переменные или просто зарегистрировать факт создания переменной и передать управление следующему создателю в цепочке. Создатели также могут изменять именованные аргументы, передаваемые следующим создателям.

При создании переменных пользовательские геттеры в области переменных в конечном итоге будут обращаться к этим пользовательским создателям.

Допустимые именованные аргументы в kwds:

  • initial_value: Tensor или объект Python, преобразуемый в Tensor, который задаёт начальное значение Variable. Для начального значения должна быть указана форма, если только validate_shape не установлено в False. Также это может быть вызываемый объект без аргументов, возвращающий начальное значение при вызове. В этом случае необходимо указать dtype. (Обратите внимание: функции-инициализаторы из init_ops.py перед использованием здесь необходимо привязать к форме.)
  • trainable: Если True, что является значением по умолчанию, GradientTapes автоматически отслеживают использование этой Variable.
  • validate_shape: Если False, переменную можно инициализировать значением с неизвестной формой. Если True, что является значением по умолчанию, форма initial_value должна быть известна.
  • caching_device: Необязательная строка с именем устройства, указывающая, где следует кэшировать Variable для чтения. По умолчанию используется устройство Variable. Если значение не None, кэширование выполняется на другом устройстве. Обычно кэширование выполняется на устройстве, где находятся Ops, использующие Variable, чтобы избежать повторного копирования через Switch и другие условные операторы.
  • name: Необязательное имя переменной. По умолчанию используется 'Variable', а уникальное имя назначается автоматически. dtype: Если задано, initial_value будет преобразовано к указанному типу. Если None, тип данных либо останется прежним (если initial_value — Tensor), либо будет определён с помощью convert_to_tensor.
  • constraint: Функция-ограничение, применяемая к переменной после обновлений некоторыми алгоритмами.
  • synchronization: Указывает, когда будет агрегироваться распределённая переменная. Допустимые значения — константы, определённые в классе tf.VariableSynchronization. По умолчанию для синхронизации устанавливается значение AUTO, а текущий DistributionStrategy определяет, когда выполнять синхронизацию.
  • aggregation: Указывает, как будет агрегироваться распределённая переменная. Допустимые значения — константы, определённые в классе tf.VariableAggregation.

Этот набор может со временем расширяться, поэтому важно, чтобы сигнатура создателей соответствовала приведённому выше описанию.

Аргументы
variable_creator переданный создатель
Возвращает
Область, в которой активен создатель

© 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/variable_creator_scope

Spec-Zone.ru

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