Класс Constant
Класс Constant создает инициализатор для слоев и переменных TensorFlow,
который заполняет тензор заданным постоянным значением.
Первым параметром передается значение, которым будет заполнен тензор.
Вторым параметром можно передать тип данных элементов.
Инициализатор вызывается с аргументом shape - формой создаваемого тензора.
Синтаксис
tf.keras.initializers.Constant(value, [dtype])
Пример
Давайте создадим инициализатор Constant со значением 5
и применим его к тензору формы 5:
import tensorflow as tf
init = tf.keras.initializers.Constant(5)
t = init(shape=(5,))
print(t)
Результат выполнения кода:
tf.Tensor([5. 5. 5. 5. 5.], shape=(5,), dtype=float32)
Пример
Давайте создадим инициализатор Constant со значением 7
и типом int32, применив его к двумерному тензору:
import tensorflow as tf
init = tf.keras.initializers.Constant(7, dtype=tf.int32)
t = init(shape=(2, 3))
print(t)
Результат выполнения кода:
tf.Tensor(
[[7 7 7]
[7 7 7]], shape=(2, 3), dtype=int32)
Пример
Давайте используем инициализатор Constant
в слое Dense для заполнения весов заданным значением:
import tensorflow as tf
init = tf.keras.initializers.Constant(1)
layer = tf.keras.layers.Dense(3, kernel_initializer=init)
t = layer(tf.constant([[1, 2, 3], [4, 5, 6]]))
print(layer.kernel)
Результат выполнения кода:
<tf.Variable 'dense/kernel:0' shape=(3, 3) dtype=float32, numpy=
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=float32)>
Смотрите также
-
класс
Zeros,
который создает инициализатор, заполненный нулями -
класс
Ones,
который создает инициализатор, заполненный единицами -
класс
RandomNormal,
который создает инициализатор со случайными значениями нормального распределения -
класс
GlorotUniform,
который создает инициализатор с равномерным распределением Глоро