tf.initializers.constant
Инициализатор, генерирующий тензоры с постоянными значениями.
Унаследован от: Initializer
tf.initializers.constant(
value=0, dtype=tf.dtypes.float32, verify_shape=False
)
Полученный тензор заполняется значениями типа 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 списка.
import numpy as np import tensorflow as tf
value = [0, 1, 2, 3, 4, 5, 6, 7]
value = np.array(value)
value = value.reshape([2, 4])
init = tf.compat.v1.constant_initializer(value)
<pre class="devsite-click-to-copy prettyprint lang-py"> <code class="devsite-terminal" data-terminal-prefix=">>>">print('fitting shape:')</code> <code class="devsite-terminal" data-terminal-prefix=">>>">with tf.compat.v1.Session():</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x = tf.compat.v1.get_variable('x', shape=[2, 4], initializer=init)</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x.initializer.run()</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> print(x.eval())</code> <code class="no-select nocode"> </code> </pre> fitting shape: [[ 0. 1. 2. 3.] [ 4. 5. 6. 7.]] <pre class="devsite-click-to-copy prettyprint lang-py"> <code class="devsite-terminal" data-terminal-prefix=">>>">print('larger shape:')</code> <code class="devsite-terminal" data-terminal-prefix=">>>">with tf.compat.v1.Session():</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x = tf.compat.v1.get_variable('x', shape=[3, 4], initializer=init)</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x.initializer.run()</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> print(x.eval())</code> <code class="no-select nocode"> </code> </pre> larger shape: [[ 0. 1. 2. 3.] [ 4. 5. 6. 7.] [ 7. 7. 7. 7.]] <pre class="devsite-click-to-copy prettyprint lang-py"> <code class="devsite-terminal" data-terminal-prefix=">>>">print('smaller shape:')</code> <code class="devsite-terminal" data-terminal-prefix=">>>">with tf.compat.v1.Session():</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x = tf.compat.v1.get_variable('x', shape=[2, 3], initializer=init)</code> <code class="no-select nocode"> </code> </pre> ValueError: Too many elements provided. Needed at most 6, but received 8 <pre class="devsite-click-to-copy prettyprint lang-py"> <code class="devsite-terminal" data-terminal-prefix=">>>">print('shape verification:')</code> <code class="devsite-terminal" data-terminal-prefix=">>>">init_verify = tf.compat.v1.constant_initializer(value,</code> <code class="no-select nocode"> verify_shape=True)</code> <code class="devsite-terminal" data-terminal-prefix=">>>">with tf.compat.v1.Session():</code> <code class="devsite-terminal" data-terminal-prefix=">>>"> x = tf.compat.v1.get_variable('x', shape=[3, 4],</code> <code class="no-select nocode"> initializer=init_verify)</code> <code class="no-select nocode"> </code> </pre> 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 | Необязательная информация о возможном разбиении тензора. |
© 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/initializers/constant