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: Tensor, или объект Python, преобразуемый в Tensor, который является начальным значением для переменной. Начальное значение должно иметь указанную форму, если только validate_shape не установлено в False. Также может быть вызываемой функцией без аргументов, которая возвращает начальное значение при вызове. В этом случае dtype должен быть указан. (Обратите внимание, что функции инициализаторов из init_ops.py должны быть связаны с формой перед использованием здесь.) trainable: Если True, по умолчанию, также добавляет переменную в коллекцию графа GraphKeys.TRAINABLE_VARIABLES. Эта коллекция используется в качестве списка переменных по умолчанию для использования классами Optimizer. trainable по умолчанию True, если synchronization установлено в ON_READ, в этом случае по умолчанию False. collections: Список ключей коллекций графа. Новая переменная добавляется в эти коллекции. По умолчанию [GraphKeys.GLOBAL_VARIABLES]. validate_shape: Если False, позволяет инициализировать переменную значением неизвестной формы. Если True, по умолчанию, форма initial_value должна быть известна. caching_device: Необязательная строка устройства, описывающая, где переменная должна кэшироваться для чтения. По умолчанию — устройство переменной. Если не None, кэшируется на другом устройстве. Типичное использование — кэширование на устройстве, где находятся операции, использующие переменную, чтобы избежать копирования через Switch и другие условные операторы. name: Необязательное имя для переменной. По умолчанию 'Variable' и автоматически получает уникальное имя. dtype: Если установлено, initial_value будет преобразован к указанному типу. Если None, либо тип данных будет сохранён (если initial_value является тензором), либо convert_to_tensor будет решать. constraint: Функция ограничения, которая применяется к переменной после обновлений некоторыми алгоритмами. use_resource: если True, всегда создаётся ResourceVariable. synchronization: Указывает, когда распределённая переменная будет агрегирована. Допустимые значения — константы, определённые в классе tf.VariableSynchronization. По умолчанию синхронизация установлена в AUTO и текущий DistributionStrategy выбирает, когда синхронизироваться. aggregation: Указывает, как распределённая переменная будет агрегирована. Допустимые значения — константы, определённые в классе tf.VariableAggregation.
Этот набор может расширяться со временем, поэтому важно, чтобы сигнатура создателей была такой, как указано выше.
| Аргументы | |
|---|---|
variable_creator | переданный создатель |
Возвращает:
Область, в которой активен создатель
© 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/variable_creator_scope