tf.compat.v1.constant_initializer
Инициализатор, генерирующий тензоры с постоянными значениями.
tf.compat.v1.constant_initializer(
value=0,
dtype=tf.dtypes.float32,
verify_shape=False
)
Переход на TF2
Несмотря на то, что это API-точка устаревшего API, tf.compat.v1.constant_initializer совместима с выполнением eager и tf.function.
Чтобы перейти к API TF2, который не является устаревшим, используйте tf.constant_initializer вместо него. Аргумент dtype в tf.compat.v1.constantinitializer.init_() отсутствует в tf.constantinitializer.init_(). Однако вы можете указать dtype в __call__() в обоих случаях.
В символе compat.v1, если verify_shape установлено в True, при инициализации переменной с формой, отличной от value, возникает исключение. Если установлено в False, value будет переформатирован для инициализации переменной при необходимости. Исключение будет возникать только при разнице в количестве элементов.
Аргумент verify_shape не поддерживается в TF2. Использование tf.constant_initializer эквивалентно установке verify_shape в значение False.
Структурное отображение на TF2
До:
value = [0, 1, 2, 3, 4, 5, 6, 7]
initializer = tf.compat.v1.constant_initializer(
value=value,
dtype=tf.float32,
verify_shape=False)
variable = tf.Variable(initializer(shape=[2, 4]))
После:
value = [0, 1, 2, 3, 4, 5, 6, 7] initializer = tf.constant_initializer(value=value) tf.Variable(initializer(shape=[2, 4], dtype=tf.float32))
Как сопоставить аргументы
| Имя аргумента TF1 | Имя аргумента TF2 | Примечание |
|---|---|---|
value | value | В конструкторе |
dtype | dtype | В методе __call__() |
verify_shape | Не поддерживается | Эквивалентно установке в значение False
|
partition_info | - | (аргумент __call__ в TF1) Не поддерживается |
Пример использования до и после
До:
value = [1., 2., 3., 4.]
initializer = tf.compat.v1.constant_initializer(
value=value, dtype=tf.float32, verify_shape=True)
tf.Variable(initializer(shape=[2, 2])).numpy()
Traceback (most recent call last):
TypeError: Expected Tensor's shape: (2, 2), got (4,).
initializer = tf.compat.v1.constant_initializer(
value=value, dtype=tf.float32, verify_shape=False)
tf.Variable(initializer(shape=[2, 2])).numpy()
array([[1., 2.],
[3., 4.]], dtype=float32)После:
value = [1., 2., 3., 4.]
initializer = tf.constant_initializer(value=value)
tf.Variable(initializer(shape=[2, 2], dtype=tf.float32)).numpy()
array([[1., 2.],
[3., 4.]], dtype=float32)Описание
Используется в блокнотах
| Используется в руководстве |
|---|
Полученный тензор заполняется значениями типа dtype, как указано в аргументах value, соответствующих желаемой shape нового тензора (см. примеры ниже).
Аргумент value может быть постоянным значением или списком значений типа dtype. Если value является списком, то длина списка должна быть меньше или равна числу элементов, подразумеваемых желаемой формой тензора. В случае, если общее количество элементов в value меньше, чем количество элементов, необходимое для формы тензора, последний элемент в value будет использоваться для заполнения оставшихся записей. Если общее количество элементов в value больше, чем количество элементов, необходимое для формы тензора, инициализатор вызовет исключение ValueError.
| Аргументы | |
|---|---|
value | Скаляр Python, список или кортеж значений или N-мерный массив numpy. Все элементы инициализированной переменной будут установлены в соответствующее значение в аргументе value. |
dtype | Типовой тип данных по умолчанию, используется, если аргумент dtype не указан при вызове инициализатора. |
verify_shape | Логическое значение, которое включает проверку формы value. Если True, инициализатор выдаст ошибку, если форма value несовместима с формой инициализированного тензора. |
| Возможные исключения | |
|---|---|
TypeError | Если входной value не является одним из ожидаемых типов. |
| Примеры | |
|---|---|
Следующий пример можно переписать, используя numpy.ndarray вместо списка value, даже переформатированного, как показано в двух комментариях ниже инициализации списка value. |
value = [0, 1, 2, 3, 4, 5, 6, 7]
init = tf.compat.v1.constant_initializer(value)
# fitting shape
with tf.compat.v1.Session():
x = tf.compat.v1.get_variable('x', shape=[2, 4], initializer=init)
x.initializer.run()
print(x.eval())
[[0. 1. 2. 3.]
[4. 5. 6. 7.]]
# Larger shape
with tf.compat.v1.Session():
y = tf.compat.v1.get_variable('y', shape=[3, 4], initializer=init)
y.initializer.run()
print(y.eval())
[[0. 1. 2. 3.]
[4. 5. 6. 7.]
[7. 7. 7. 7.]]
# Smaller shape
with tf.compat.v1.Session():
z = tf.compat.v1.get_variable('z', shape=[2, 3], initializer=init)
Traceback (most recent call last):
ValueError: Too many elements provided. Needed at most 6, but received 8
# Shape verification
init_verify = tf.compat.v1.constant_initializer(value, verify_shape=True)
with tf.compat.v1.Session():
u = tf.compat.v1.get_variable('u', shape=[3, 4],
initializer=init_verify)
Traceback (most recent call last):
TypeError: Expected Tensor's shape: (3, 4), got (8,).Методы
from_config
@classmethod
from_config(
config
)
Инициализирует инициализатор по словарю настроек.
Пример:
initializer = RandomUniform(-1, 1) config = initializer.get_config() initializer = RandomUniform.from_config(config)
| Аргументы | |
|---|---|
config | Словарь Python. Обычно это результат выполнения get_config. |
| Возвращаемое значение | |
|---|---|
| Экземпляр Initializer. |
get_config
get_config()
Возвращает конфигурацию инициализатора в виде сериализуемого в JSON словаря.
| Возвращаемое значение | |
|---|---|
| Сериализуемый в JSON словарь Python. |
__call__
__call__(
shape, dtype=None, partition_info=None, verify_shape=None
)
Возвращает объект тензора, инициализированный в соответствии с указаниями инициализатора.
| Аргументы | |
|---|---|
shape | Форма тензора. |
dtype | Необязательный тип данных тензора. Если не указан, используется тип данных инициализатора. |
partition_info | Необязательная информация о возможном разбиении тензора. |
© 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/compat/v1/constant_initializer