tf.keras.Variable
Представляет собой переменную Keras, не зависящую от бэкенда.
tf.keras.Variable(
initializer,
shape=None,
dtype=None,
trainable=True,
autocast=True,
aggregation='mean',
name=None
)
Объект Variable служит контейнером для состояния. Он хранит значение тензора, которое можно обновлять. В бэкенде JAX переменные используются для реализации «функционализации» — подхода, при котором операции с состоянием выносятся за пределы вычисления, чтобы превратить его в функцию без состояния.
| Аргументы | |
|---|---|
initializer | Начальное значение или вызываемый объект для инициализации. Если используется вызываемый объект, он должен принимать аргументы shape и dtype. |
shape | Необязательный параметр. Кортеж, задающий форму переменной. Обязателен, если initializer является вызываемым объектом. |
dtype | Необязательный параметр. Тип данных переменной. По умолчанию используется глобальный тип данных float ("float32", если он никогда не настраивался). |
trainable | Необязательный параметр. Логическое значение, указывающее, доступно ли обучение переменной. По умолчанию — True. |
name | Необязательный параметр. Уникальное имя переменной. Если не задано, генерируется автоматически. |
Примеры:
Инициализация Variable с помощью массива NumPy:
import numpy as np import keras initial_array = np.ones((3, 3)) variable_from_array = keras.Variable(initializer=initial_array)
Создание Variable с помощью инициализатора Keras:
from keras.src.initializers import Ones
variable_from_initializer = keras.Variable(
initializer=Ones(), shape=(3, 3), dtype="float32"
)
Обновление значения Variable:
new_value = np.zeros((3, 3), dtype="float32") variable_from_array.assign(new_value)
Пометка Variable как недоступной для обучения:
non_trainable_variable = keras.Variable(
initializer=np.ones((3, 3), dtype="float32"), trainable=False
)
| Атрибуты | |
|---|---|
name | Имя переменной (строка). |
path | Путь к переменной в модели или слое Keras (строка). |
dtype | Тип данных переменной (строка). |
shape | Форма переменной (кортеж целых чисел). |
ndim | Число измерений переменной (целое число). |
trainable | Доступно ли обучение переменной (логическое значение). |
value | Текущее значение переменной (массив NumPy или тензор). |
aggregation | |
constraint | |
handle | |
overwrite_with_gradient | Следует ли перезаписывать эту переменную градиентом. Это свойство предназначено для особого случая, когда переменную нужно напрямую перезаписать вычисленным градиентом. Например, при обучении с float8 новые |
regularizer | |
Методы
assign
assign(
value
)
assign_add
assign_add(
value
)
assign_sub
assign_sub(
value
)
numpy
numpy()
__abs__
__abs__()
__add__
__add__(
other
)
__and__
__and__(
other
)
__array__
__array__(
dtype=None
)
__bool__
__bool__()
__eq__
__eq__(
other
)
Возвращает self==value.
__floordiv__
__floordiv__(
other
)
__ge__
__ge__(
other
)
Возвращает self>=value.
__getitem__
__getitem__(
idx
)
__gt__
__gt__(
other
)
Возвращает self>value.
__invert__
__invert__()
__le__
__le__(
other
)
Возвращает self<=value.
__lt__
__lt__(
other
)
Возвращает self<value.
__matmul__
__matmul__(
other
)
__mod__
__mod__(
other
)
__mul__
__mul__(
other
)
__ne__
__ne__(
other
)
Возвращает self!=value.
__neg__
__neg__()
__or__
__or__(
other
)
__pos__
__pos__()
__pow__
__pow__(
other
)
__radd__
__radd__(
other
)
__rand__
__rand__(
other
)
__rfloordiv__
__rfloordiv__(
other
)
__rmatmul__
__rmatmul__(
other
)
__rmod__
__rmod__(
other
)
__rmul__
__rmul__(
other
)
__ror__
__ror__(
other
)
__rpow__
__rpow__(
other
)
__rsub__
__rsub__(
other
)
__rtruediv__
__rtruediv__(
other
)
__rxor__
__rxor__(
other
)
__sub__
__sub__(
other
)
__truediv__
__truediv__(
other
)
__xor__
__xor__(
other
)
© 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/keras/Variable