Spec-Zone.ru › TensorFlow 1.15

tf.get_local_variable

Получает существующую локальную переменную или создаёт новую.

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.get_local_variable

tf.get_local_variable(
    name, shape=None, dtype=None, initializer=None, regularizer=None,
    trainable=False, collections=None, caching_device=None, partitioner=None,
    validate_shape=True, use_resource=None, custom_getter=None, constraint=None,
    synchronization=tf.VariableSynchronization.AUTO,
    aggregation=tf.VariableAggregation.NONE
)

Поведение аналогично get_variable, за исключением того, что переменные добавляются в коллекцию LOCAL_VARIABLES и trainable устанавливается в False. Эта функция префиксрует имя текущим областью переменных и выполняет проверки повторного использования. См. Руководство по области переменных для подробного описания работы повторного использования. Вот базовый пример:

def foo():
  with tf.variable_scope("foo", reuse=tf.AUTO_REUSE):
    v = tf.get_variable("v", [1])
  return v

v1 = foo()  # Creates v.
v2 = foo()  # Gets the same, existing v.
assert v1 == v2

Если initializer равен None (по умолчанию), будет использован инициализатор по умолчанию, переданный в области переменных. Если и он равен None, будет использован glorot_uniform_initializer. Инициализатор также может быть тензором, в этом случае переменная инициализируется этим значением и формой.

Аналогично, если regularizer равен None (по умолчанию), будет использован регулярный по умолчанию, переданный в области переменных (если и он равен None, то по умолчанию регуляризация не выполняется).

Если указан partitioner, возвращается PartitionedVariable. Доступ к этому объекту как к Tensor возвращает фрагменты, конкатенированные по оси разбиения.

Доступны некоторые полезные partitioner. См., например, variable_axis_size_partitioner и min_max_variable_partitioner.

Аргументы
name Имя новой или существующей переменной.
shape Форма новой или существующей переменной.
dtype Тип новой или существующей переменной (по умолчанию DT_FLOAT).
initializer Инициализатор для переменной, если она создаётся. Может быть объектом инициализатора или тензором. Если это тензор, его форма должна быть известна, если validate_shape не False.
regularizer Функция (Tensor -> Tensor или None); результат её применения к только что созданной переменной будет добавлен в коллекцию tf.GraphKeys.REGULARIZATION_LOSSES и может использоваться для регуляризации.
collections Список ключей графовых коллекций, в которые нужно добавить переменную. По умолчанию [GraphKeys.LOCAL_VARIABLES] (см. tf.Variable).
caching_device Необязательная строка устройства или функция, описывающая, где переменная должна кешироваться для чтения. По умолчанию устройство переменной. Если не None, кешируется на другом устройстве. Типичное использование — кеширование на устройстве, где находятся операции, использующие переменную, для избежания копирования через Switch и другие условные операторы.
partitioner Необязательная вызываемая функция, которая принимает полностью определённую TensorShape и dtype создаваемой переменной и возвращает список разделов для каждой оси (в настоящее время только одна ось может быть разделена).
validate_shape Если False, позволяет инициализировать переменную значением неизвестной формы. Если True (по умолчанию), форма initial_value должна быть известна. Для использования этого значения инициализатор должен быть тензором, а не объектом инициализатора.
use_resource Если False, создаётся обычная переменная. Если True, создаётся экспериментальная ResourceVariable вместо неё с хорошо определёнными семантиками. По умолчанию False (в дальнейшем будет изменено на True). При включённом режиме выполнения eager этот аргумент всегда принудительно устанавливается в True.
custom_getter Функция, которая принимает в качестве первого аргумента истинный getter и позволяет переопределить внутренний метод get_variable. Подпись custom_getter должна соответствовать подписи этого метода, но самая надёжная версия позволит изменения: def custom_getter(getter, *args, **kwargs). Также разрешён прямой доступ ко всем get_variable параметрам: def custom_getter(getter, name, *args, **kwargs). Простая пользовательская функция getter по умолчанию, которая просто создаёт переменные с изменёнными именами:
def custom_getter(getter, name, *args, **kwargs):
return getter(name + '_suffix', *args, **kwargs)
constraint Необязательная функция проекции, применяемая к переменной после обновления Optimizer (например, используется для реализации ограничений нормы или ограничений значений для весов слоёв). Функция должна принимать в качестве входного значения непроектированный тензор, представляющий значение переменной, и возвращать тензор для спроецированного значения (форма которого должна быть такой же). Ограничения небезопасны при асинхронной распределённой тренировке.
synchronization Указывает, когда распределённая переменная будет агрегирована. Допустимые значения — константы, определённые в классе tf.VariableSynchronization. По умолчанию синхронизация установлена в AUTO и текущий DistributionStrategy выбирает время синхронизации.
aggregation Указывает, как распределённая переменная будет агрегирована. Допустимые значения — константы, определённые в классе tf.VariableAggregation.
Возвращает
Созданная или существующая Variable (или PartitionedVariable, если был использован partitioner).
Возможные ошибки
ValueError при создании новой переменной, если форма не объявлена, при нарушении повторного использования при создании переменной или при несовпадении initializer типа и dtype типа. Повторное использование устанавливается внутри variable_scope.

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

Spec-Zone.ru

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