tf.variable_creator_scope
| Просмотреть исходный код на GitHub |
Область, определяющая функцию создания переменной, которая будет использоваться функцией 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: A
Tensor, или Python-объект, преобразуемый вTensor, который является начальным значением для переменной. Начальное значение должно иметь указанную форму, еслиvalidate_shapeне установлено в False. Также может быть вызываемым объектом без аргументов, который возвращает начальное значение при вызове. В этом случае необходимо указатьdtype. (Обратите внимание, что функции инициализаторов из init_ops.py должны быть связаны с формой перед использованием здесь.) - trainable: Если
True, по умолчанию, GradientTapes автоматически отслеживают использование этой переменной. - validate_shape: Если
False, позволяет переменной быть инициализированной значением с неизвестной формой. ЕслиTrue, по умолчанию, формаinitial_valueдолжна быть известна. - caching_device: Необязательная строка устройства, описывающая, где переменная должна кэшироваться для чтения. По умолчанию — устройство переменной. Если не
None, кэшируется на другом устройстве. Типичное использование — кэширование на устройстве, на котором находятся операции, использующие переменную, для избежания дублирования копирования черезSwitchи другие условные операторы. - name: Необязательное имя переменной. По умолчанию —
'Variable'и автоматически получает уникальное имя. dtype: Если установлено, initial_value будет преобразовано в указанный тип. ЕслиNone, либо тип данных будет сохранён (еслиinitial_value— тензор), либо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/versions/r2.9/api_docs/python/tf/variable_creator_scope