Spec-Zone.ru › TensorFlow

tf.constant

Создаёт тензор-константу из объекта, подобного тензору.

tf.constant(
    value, dtype=None, shape=None, name='Const'
) -> Union[tf.Operation, ops._EagerTensorBase]

Используется в ноутбуках

Используется в руководстве Используется в учебных пособиях
  • Лучшая производительность с tf.function
  • Преобразование типов TF-NumPy
  • Введение в тензоры
  • Введение в графы и tf.function
  • Миграция `tf.feature_column` в слои предобработки Keras
  • DeepDream
  • Загрузка текста
  • Игра в CartPole методом Актер-Критик
  • Нейронный стиль-трансфер
  • Пользовательский цикл обучения с Keras и MultiWorkerMirroredStrategy
Примечание: Все значения eager tf.Tensor являются неизменяемыми (в отличие от tf.Variable). В значении, возвращаемом функцией tf.constant, нет ничего особенно постоянного. Эта функция не отличается фундаментально от tf.convert_to_tensor. Название tf.constant происходит от того, что value встроена в узел Const в tf.Graph. tf.constant полезна для утверждения, что значение может быть встроено таким образом.

Если аргумент dtype не указан, тип определяется по типу value.

# Constant 1-D Tensor from a python list.
tf.constant([1, 2, 3, 4, 5, 6])
<tf.Tensor: shape=(6,), dtype=int32,
    numpy=array([1, 2, 3, 4, 5, 6], dtype=int32)>
# Or a numpy array
a = np.array([[1, 2, 3], [4, 5, 6]])
tf.constant(a)
<tf.Tensor: shape=(2, 3), dtype=int64, numpy=
  array([[1, 2, 3],
         [4, 5, 6]])>

Если dtype указан, значения результирующего тензора преобразуются к указанному типу dtype.

tf.constant([1, 2, 3, 4, 5, 6], dtype=tf.float64)
<tf.Tensor: shape=(6,), dtype=float64,
    numpy=array([1., 2., 3., 4., 5., 6.])>

Если shape установлен, value переформатируется для соответствия. Скаляры расширяются для заполнения shape:

tf.constant(0, shape=(2, 3))
  <tf.Tensor: shape=(2, 3), dtype=int32, numpy=
  array([[0, 0, 0],
         [0, 0, 0]], dtype=int32)>
tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
<tf.Tensor: shape=(2, 3), dtype=int32, numpy=
  array([[1, 2, 3],
         [4, 5, 6]], dtype=int32)>

tf.constant не оказывает никакого влияния, если в качестве value передаётся eager тензор, он даже передаёт градиенты:

v = tf.Variable([0.0])
with tf.GradientTape() as g:
    loss = tf.constant(v + v)
g.gradient(loss, v).numpy()
array([2.], dtype=float32)

Однако, поскольку tf.constant встраивает значение в tf.Graph, это не работает для символических тензоров:

with tf.compat.v1.Graph().as_default():
  i = tf.compat.v1.placeholder(shape=[None, None], dtype=tf.float32)
  t = tf.constant(i)
Traceback (most recent call last):

TypeError: ...

tf.constant создаёт тензоры на текущем устройстве. Входные данные, которые уже являются тензорами, сохраняют своё расположение без изменений.

Связанные операции:

  • tf.convert_to_tensor аналогична, но:

    • У неё нет аргумента shape.
    • Символические тензоры разрешены для прохождения.
    with tf.compat.v1.Graph().as_default():
      i = tf.compat.v1.placeholder(shape=[None, None], dtype=tf.float32)
      t = tf.convert_to_tensor(i)
      
  • tf.fill: отличается несколькими способами:

    • tf.constant поддерживает произвольные константы, а не только равномерные скалярные тензоры, как tf.fill.
    • tf.fill создаёт операцию в графе, которая расширяется во время выполнения, поэтому она может эффективно представлять большие тензоры.
    • Так как tf.fill не встраивает значение, она может создавать выходные данные с динамическим размером.
Аргументы
value Значение константы (или список) типа вывода dtype.
dtype Тип элементов результирующего тензора.
shape Необязательные размерности результирующего тензора.
name Необязательное имя тензора.
Возвращаемое значение
Тензор-константа.
Исключения
TypeError если форма указана или не поддерживается неправильно.
ValueError если вызвана на символическом тензоре.

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

Spec-Zone.ru

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