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