Spec-Zone.ru › TensorFlow 1.15

tf.Tensor

Просмотреть исходный код на GitHub

Представляет один из выходов Operation.

Псевдонимы

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.Tensor, `tf.compat.v2.Tensor`

tf.Tensor(
    op, value_index, dtype
)

Тензор — это символическая ссылка на один из выходов Operation. Он не содержит значения результата этой операции, а вместо этого предоставляет способ вычисления этих значений в TensorFlow tf.compat.v1.Session.

Этот класс имеет две основные цели:

  1. Тензор можно передать в качестве входного значения для другой Operation. Это создает соединение потока данных между операциями, что позволяет TensorFlow выполнить всю Graph , представляющую собой вычисление из нескольких этапов.

  2. После запуска графа в сессии значение тензора можно вычислить, передав его в tf.Session.run. t.eval() — это сокращение вызова tf.compat.v1.get_default_session().run(t).

В следующем примере c, d, и e — это символические объекты Tensor, а result — массив NumPy, который хранит конкретное значение:

# Build a dataflow graph.
c = tf.constant([[1.0, 2.0], [3.0, 4.0]])
d = tf.constant([[1.0, 1.0], [0.0, 1.0]])
e = tf.matmul(c, d)

# Construct a `Session` to execute the graph.
sess = tf.compat.v1.Session()

# Execute the graph and store the value that `e` represents in `result`.
result = sess.run(e)
Аргументы
op Operation. Operation вычисляет этот тензор.
value_index int. Индекс конечной точки операции, которая производит этот тензор.
dtype DType. Тип элементов, хранящихся в этом тензоре.
Исключения
TypeError Если операция не является Operation.
Атрибуты
device Имя устройства, на котором будет создан этот тензор, или None.
dtype Размер элементов в этом тензоре.
graph Операция, содержащая этот тензор.
name Строковое имя этого тензора.
op Операция, которая производит этот тензор в качестве выхода.
shape Возвращает тензор, представляющий форму этого тензора.

Форма вычисляется с помощью функций вывода формы, зарегистрированных в операции для каждого Operation. См. tf.TensorShape для получения более подробной информации о том, что представляет собой форма.

Вывод формы тензора используется для предоставления информации о форме без запуска графа в сессии. Это может быть использовано для отладки и предоставления ранних сообщений об ошибках. Например:

c = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])

print(c.shape)
==> TensorShape([Dimension(2), Dimension(3)])

d = tf.constant([[1.0, 0.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0]])

print(d.shape)
==> TensorShape([Dimension(4), Dimension(2)])

# Raises a ValueError, because `c` and `d` do not have compatible
# inner dimensions.
e = tf.matmul(c, d)

f = tf.matmul(c, d, transpose_a=True, transpose_b=True)

print(f.shape)
==> TensorShape([Dimension(3), Dimension(4)])

В некоторых случаях вывод формы может содержать неизвестные измерения. Если у вызывающего есть дополнительная информация о значениях этих измерений, Tensor.set_shape() можно использовать для дополнения выведенной формы.

value_index Индекс этого тензора в выходных данных его Operation.

Методы

consumers

Просмотреть исходный код

consumers()

Возвращает список Operations, которые потребляют этот тензор.

Возвращает
Список Operations.

eval

Просмотреть исходный код

eval(
    feed_dict=None, session=None
)

Вычисляет этот тензор в Session.

Вызов этого метода выполнит все предыдущие операции, которые производят входные данные, необходимые для операции, которая производит этот тензор.

Примечание: Перед вызовом Tensor.eval() его граф должен быть запущен в сессии, и либо должна быть доступна сессия по умолчанию, либо session должна быть указана явно.
Аргументы
feed_dict Словарь, сопоставляющий объекты Tensor со значениями для подмены. См. tf.Session.run для описания допустимых значений подмены.
session (Необязательно.) Session для вычисления этого тензора. Если не указано, будет использована сессия по умолчанию.
Возвращаемое значение
Массив NumPy, соответствующий значению этого тензора.

experimental_ref

Просмотреть исходный код

experimental_ref()

Возвращает хешируемый объект-ссылку на этот тензор.

Предупреждение: Экспериментальный API, который может быть изменён или удалён.

Основное применение этого API — размещение тензоров в множествах/словарях. Мы не можем помещать тензоры в множества/словари, так как tensor.__hash__() больше недоступен начиная с Tensorflow 2.0.

import tensorflow as tf

x = tf.constant(5)
y = tf.constant(10)
z = tf.constant(10)

# The followings will raise an exception starting 2.0
# TypeError: Tensor is unhashable if Tensor equality is enabled.
tensor_set = {x, y, z}
tensor_dict = {x: 'five', y: 'ten', z: 'ten'}

Вместо этого мы можем использовать tensor.experimental_ref().

tensor_set = {x.experimental_ref(),
              y.experimental_ref(),
              z.experimental_ref()}

print(x.experimental_ref() in tensor_set)
==> True

tensor_dict = {x.experimental_ref(): 'five',
               y.experimental_ref(): 'ten',
               z.experimental_ref(): 'ten'}

print(tensor_dict[y.experimental_ref()])
==> ten

Кроме того, объект ссылки предоставляет функцию .deref() которая возвращает исходный тензор.

x = tf.constant(5)
print(x.experimental_ref().deref())
==> tf.Tensor(5, shape=(), dtype=int32)

get_shape

Просмотреть исходный код

get_shape()

Псевдоним для Tensor.shape.

set_shape

Просмотреть исходный код

set_shape(
    shape
)

Обновляет форму этого тензора.

Этот метод можно вызывать несколько раз, и он будет объединять заданную shape с текущей формой этого тензора. Его можно использовать для предоставления дополнительной информации о форме этого тензора, которую нельзя вывести только из графа. Например, это можно использовать для предоставления дополнительной информации о формах изображений:

_, image_data = tf.compat.v1.TFRecordReader(...).read(...)
image = tf.image.decode_png(image_data, channels=3)

# The height and width dimensions of `image` are data dependent, and
# cannot be computed without executing the op.
print(image.shape)
==> TensorShape([Dimension(None), Dimension(None), Dimension(3)])

# We know that each image in this dataset is 28 x 28 pixels.
image.set_shape([28, 28, 3])
print(image.shape)
==> TensorShape([Dimension(28), Dimension(28), Dimension(3)])
Примечание: Эта форма не проверяется во время выполнения. Установка некорректных форм может привести к несоответствиям между статически известным графом и значением тензоров во время выполнения. Для проверки формы во время выполнения используйте tf.ensure_shape вместо этого.
Аргументы
shape Представление формы этого тензора, например, кортеж, список или None.
Исключения
ValueError Если shape несовместима с текущей формой этого тензора.

__abs__

Просмотреть исходный код

__abs__(
    x, name=None
)

Вычисляет абсолютное значение тензора.

При заданном тензоре целочисленных или с плавающей точкой значений, эта операция возвращает тензор того же типа, где каждый элемент содержит абсолютное значение соответствующего элемента на входе.

При заданном тензоре x комплексных чисел, эта операция возвращает тензор типа float32 или float64, который является абсолютным значением каждого элемента в x. Все элементы в x должны быть комплексными числами вида \(a + bj\). Абсолютное значение вычисляется как \( \sqrt{a^2 + b^2}\). Например:

x = tf.constant([[-2.25 + 4.75j], [-3.25 + 5.75j]])
tf.abs(x)  # [5.25594902, 6.60492229]
Аргументы
x Тензор или скаляр типа float16, float32, float64, int32, int64, complex64 или complex128.
name Имя операции (необязательно).
Возвращаемое значение
Тензор или скаляр того же размера, типа и разреженности, что и x, с абсолютными значениями. Обратите внимание, что для complex64 или complex128 ввода возвращаемый Tensor будет типа float32 или float64, соответственно.

Если x является SparseTensor, возвращает SparseTensor(x.indices, tf.math.abs(x.values, ...), x.dense_shape)

__add__

Просмотреть исходный код

__add__(
    x, y
)

Добавляются отправки для строк и add_v2 для всех других типов.

__and__

Просмотреть исходный код

__and__(
    x, y
)

Возвращает значение истинности x И y поэлементно.

Примечание: math.logical_and поддерживает широковещательную передачу. Дополнительную информацию о широковещательной передаче см. здесь
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor типа bool.

__bool__

Просмотреть исходный код

__bool__()

Метод-заглушка для предотвращения использования тензора как Python bool.

Этот перегруз вызывает TypeError, когда пользователь непреднамеренно использует Tensor как булево значение (чаще всего в операторе if или while), в коде, который не был преобразован AutoGraph. Например:

if tf.constant(True):  # Will raise.
  # ...

if tf.constant(5) < tf.constant(7):  # Will raise.
  # ...
Исключения
TypeError.

__div__

Просмотреть исходный код

__div__(
    x, y
)

Деление двух значений с использованием семантики Python 2.

Используется для Tensor.div.

Аргументы
x Tensor числитель вещественного числового типа.
y Tensor знаменатель вещественного числового типа.
name Имя операции (необязательно).
Возвращаемое значение
x / y возвращает частное x и y.

__eq__

Просмотреть исходный код

__eq__(
    other
)

Сравнивает два тензора поэлементно на равенство.

__floordiv__

Просмотреть исходный код

__floordiv__(
    x, y
)

Делит x / y поэлементно, округляя к ближайшему меньшему целому.

То же самое, что и tf.compat.v1.div(x,y) для целых чисел, но использует tf.floor(tf.compat.v1.div(x,y)) для аргументов с плавающей запятой, чтобы результат всегда был целым числом (возможно, целым числом, представленным как число с плавающей запятой). Этот оператор генерируется операцией целочисленного деления с округлением вниз в Python 3 и в Python 2.7 с from __future__ import division.

x и y должны иметь тот же тип, и результат будет иметь тот же тип.

Аргументы
x Tensor числитель вещественного числового типа.
y Tensor знаменатель вещественного числового типа.
name Имя операции (необязательно).
Возвращаемое значение
x / y округляется вниз.
Исключения
TypeError Если входные данные являются комплексными.

__ge__

__ge__(
    x, y, name=None
)

Возвращает значение истинности (x >= y) поэлементно.

Примечание: math.greater_equal поддерживает широковещательную передачу. Дополнительную информацию о широковещательной передаче см. здесь
Аргументы
x A Tensor. Должен быть одним из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
y A Tensor. Должен иметь тот же тип, что и x.
name Название операции (необязательно).
Возвращает
A Tensor типа bool.

__getitem__

Просмотреть исходный код

__getitem__(
    tensor, slice_spec, var=None
)

Перегрузка для Tensor.getitem.

Данная операция извлекает указанный фрагмент из тензора. Нотация похожа на NumPy, но в настоящее время поддерживается только базовая индексация. Это означает, что использование нескалярного тензора в качестве входного значения в настоящее время недопустимо.

Некоторые полезные примеры:

# Strip leading and trailing 2 elements
foo = tf.constant([1,2,3,4,5,6])
print(foo[2:-2].eval())  # => [3,4]

# Skip every other row and reverse the order of the columns
foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[::2,::-1].eval())  # => [[3,2,1], [9,8,7]]

# Use scalar tensors as indices on both dimensions
print(foo[tf.constant(0), tf.constant(2)].eval())  # => 3

# Insert another dimension
foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[tf.newaxis, :, :].eval()) # => [[[1,2,3], [4,5,6], [7,8,9]]]
print(foo[:, tf.newaxis, :].eval()) # => [[[1,2,3]], [[4,5,6]], [[7,8,9]]]
print(foo[:, :, tf.newaxis].eval()) # => [[[1],[2],[3]], [[4],[5],[6]],
[[7],[8],[9]]]

# Ellipses (3 equivalent operations)
foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[tf.newaxis, :, :].eval())  # => [[[1,2,3], [4,5,6], [7,8,9]]]
print(foo[tf.newaxis, ...].eval())  # => [[[1,2,3], [4,5,6], [7,8,9]]]
print(foo[tf.newaxis].eval())  # => [[[1,2,3], [4,5,6], [7,8,9]]]

# Masks
foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[foo > 2].eval())  # => [3, 4, 5, 6, 7, 8, 9]

Примечания:

  • tf.newaxis эквивалентен None в NumPy.
  • Неявный эллипс помещается в конце slice_spec
  • Расширенная индексация NumPy в настоящее время не поддерживается.
Аргументы
tensor Объект ops.Tensor.
slice_spec Аргументы Tensor.getitem.
var В случае присваивания срезкой, объект Variable для среза (т.е. тензор — это только для чтения вид этого объекта переменной).
Возвращает
Соответствующий срез "tensor", основанный на "slice_spec".
Возможные исключения
ValueError Если диапазон среза имеет отрицательный размер.
TypeError Если индексы среза не являются int, слайсом, эллипсом, tf.newaxis или скалярными тензорами int32/int64.

__gt__

__gt__(
    x, y, name=None
)

Возвращает логическое значение (x > y) поэлементно.

Примечание: math.greater поддерживает векторизацию. Подробнее о векторизации можно узнать здесь
Аргументы
x A Tensor. Должен быть одним из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
y A Tensor. Должен иметь тот же тип, что и x.
name Название операции (необязательно).
Возвращает
A Tensor типа bool.

__invert__

__invert__(
    x, name=None
)

Возвращает логическое отрицание x поэлементно.

Аргументы
x A Tensor типа bool.
name Название операции (необязательно).
Возвращает
A Tensor типа bool.

__iter__

Просмотреть исходный код

__iter__()

__le__

__le__(
    x, y, name=None
)

Возвращает логическое значение (x <= y) поэлементно.

Примечание: math.less_equal поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor типа bool.

__len__

Просмотреть исходный код

__len__()

__lt__

__lt__(
    x, y, name=None
)

Возвращает значение истинности (x < y) поэлементно.

Примечание: math.less поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor типа bool.

__matmul__

Просмотреть исходный код

__matmul__(
    x, y
)

Умножает матрицу a на матрицу b, получая a * b.

Вводные данные, после любых транспонирований, должны быть тензорами ранга >= 2, где внутренние 2 измерения определяют допустимые аргументы матричного умножения, а любые дальнейшие внешние измерения совпадают.

Обе матрицы должны быть одного и того же типа. Поддерживаемые типы: float16, float32, float64, int32, complex64, complex128.

Любая матрица может быть транспонирована или сопряжена (сопряжена и транспонирована) на лету, установив соответствующий флаг в True. По умолчанию они False.

Если одна или обе матрицы содержат много нулей, можно использовать более эффективный алгоритм умножения, установив соответствующий флаг a_is_sparse или b_is_sparse в True. По умолчанию они False . Эта оптимизация доступна только для обычных матриц (тензоры ранга 2) с типами данных bfloat16 или float32.

Например:

# 2-D tensor `a`
# [[1, 2, 3],
#  [4, 5, 6]]
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])

# 2-D tensor `b`
# [[ 7,  8],
#  [ 9, 10],
#  [11, 12]]
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])

# `a` * `b`
# [[ 58,  64],
#  [139, 154]]
c = tf.matmul(a, b)


# 3-D tensor `a`
# [[[ 1,  2,  3],
#   [ 4,  5,  6]],
#  [[ 7,  8,  9],
#   [10, 11, 12]]]
a = tf.constant(np.arange(1, 13, dtype=np.int32),
                shape=[2, 2, 3])

# 3-D tensor `b`
# [[[13, 14],
#   [15, 16],
#   [17, 18]],
#  [[19, 20],
#   [21, 22],
#   [23, 24]]]
b = tf.constant(np.arange(13, 25, dtype=np.int32),
                shape=[2, 3, 2])

# `a` * `b`
# [[[ 94, 100],
#   [229, 244]],
#  [[508, 532],
#   [697, 730]]]
c = tf.matmul(a, b)

# Since python >= 3.5 the @ operator is supported (see PEP 465).
# In TensorFlow, it simply calls the `tf.matmul()` function, so the
# following lines are equivalent:
d = a @ b @ [[10.], [11.]]
d = tf.matmul(tf.matmul(a, b), [[10.], [11.]])
Аргументы
a Tensor типа float16, float32, float64, int32, complex64, complex128 и ранга > 1.
b Tensor с тем же типом и рангом, что и a.
transpose_a Если True, то a транспонируется перед умножением.
transpose_b Если True, то b транспонируется перед умножением.
adjoint_a Если True, то a сопрягается и транспонируется перед умножением.
adjoint_b Если True, то b сопрягается и транспонируется перед умножением.
a_is_sparse Если True, то a обрабатывается как разреженная матрица.
b_is_sparse Если True, то b обрабатывается как разреженная матрица.
name Имя операции (необязательно).
Возвращаемое значение
Объект Tensor того же типа, что и a и b, где каждая внутренняя матрица является произведением соответствующих матриц в a и b, например, если все атрибуты транспонирования или сопряжения False:

output[..., i, j] = sum_k (a[..., i, k] * b[..., k, j]), для всех индексов i, j.

Note Это матричное произведение, а не поэлементное произведение.
Исключения
ValueError Если transpose_a и adjoint_a, или transpose_b и adjoint_b оба установлены в True.

__mod__

Посмотреть исходный код

__mod__(
    x, y
)

Возвращает остаток от деления по модулю. Когда x < 0 или y < 0 истинно,

это соответствует семантике Python, в том, что результат здесь согласуется с целочисленным делением по модулю. Например, floor(x / y) * y + mod(x, y) = x.

Примечание: math.floormod поддерживает векторизацию. Подробнее о векторизации здесь
Аргументы
x A Tensor. Должен быть одного из следующих типов: int32, int64, bfloat16, half, float32, float64.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor. Имеет тот же тип, что и x.

__mul__

Посмотреть исходный код

__mul__(
    x, y
)

Выполняет поэлементное умножение для "DenseDense" и "DenseSparse".

__ne__

Посмотреть исходный код

__ne__(
    other
)

Сравнивает два тензора поэлементно на равенство.

__neg__

__neg__(
    x, name=None
)

Вычисляет численное отрицание поэлементно.

То есть, \(y = -x\).

Аргументы
x A Tensor. Должен быть одного из следующих типов: bfloat16, half, float32, float64, int32, int64, complex64, complex128.
name Имя операции (необязательно).
Возвращает
A Tensor. Имеет тот же тип, что и x.

Если x является SparseTensor, возвращает SparseTensor(x.indices, tf.math.negative(x.values, ...), x.dense_shape)

__nonzero__

Просмотреть исходный код

__nonzero__()

Метод-заглушка, чтобы предотвратить использование тензора как Python bool.

Это аналог функции __bool__() из Python 2.x.

Возбуждает
TypeError.

__or__

Просмотреть исходный код

__or__(
    x, y
)

Возвращает логическое ИЛИ x и y поэлементно.

Примечание: math.logical_or поддерживает трансляцию. Подробнее о трансляции здесь
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
name Имя операции (необязательно).
Возвращает
A Tensor типа bool.

__pow__

Просмотреть исходный код

__pow__(
    x, y
)

Вычисляет степень одного значения по отношению к другому.

При заданном тензоре x и тензоре y, эта операция вычисляет \(x^y\) для соответствующих элементов в x и y. Например:

x = tf.constant([[2, 2], [3, 3]])
y = tf.constant([[8, 16], [2, 3]])
tf.pow(x, y)  # [[256, 65536], [9, 27]]
Аргументы
x A Tensor типа float16, float32, float64, int32, int64, complex64, или complex128.
y A Tensor типа float16, float32, float64, int32, int64, complex64, или complex128.
name Имя операции (необязательно).
Возвращает
A Tensor.

__radd__

Просмотреть исходный код

__radd__(
    y, x
)

Перенаправляет вызов к add для строк и add_v2 для всех остальных типов.

__rand__

Просмотреть исходный код

__rand__(
    y, x
)

Возвращает логическое И x и y поэлементно.

Примечание: math.logical_and поддерживает трансляцию. Подробнее о трансляции здесь
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
name Имя операции (необязательно).
Возвращает
A Tensor типа bool.

__rdiv__

Просмотреть исходный код

__rdiv__(
    y, x
)

Деление двух значений с использованием семантики Python 2.

Используется для Tensor.div.

Аргументы
x Tensor числитель вещественного числового типа.
y Tensor знаменатель вещественного числового типа.
name Имя операции (необязательно).
Возвращает
x / y возвращает частное от деления x на y.

__rfloordiv__

Просмотреть исходный код

__rfloordiv__(
    y, x
)

Делит x / y поэлементно, округляя к ближайшему меньшему целому числу.

То же самое, что и tf.compat.v1.div(x,y) для целых чисел, но использует tf.floor(tf.compat.v1.div(x,y)) для чисел с плавающей точкой, чтобы результат всегда был целым числом (хотя, возможно, представленным как число с плавающей точкой). Данная операция генерируется операцией целочисленного деления с округлением вниз в Python 3 и в Python 2.7 с from __future__ import division.

x и y должны иметь одинаковый тип, и результат также будет иметь тот же тип.

Аргументы
x Tensor числитель вещественного числового типа.
y Tensor знаменатель вещественного числового типа.
name Имя операции (необязательно).
Возвращает
x / y округлено вниз.
Исключения
TypeError Если входные данные комплексные.

__rmatmul__

Просмотреть исходный код

__rmatmul__(
    y, x
)

Умножает матрицу a на матрицу b, получая a * b.

Вводные данные должны, после любых транспонирований, быть тензорами ранга >= 2, где внутренние 2 измерения определяют допустимые аргументы матричного умножения, а любые дополнительные внешние измерения совпадают.

Обе матрицы должны быть одного типа. Поддерживаемые типы: float16, float32, float64, int32, complex64, complex128.

Любую матрицу можно транспонировать или сопрячь-транспонировать (сопрячь и транспонировать) на лету, установив соответствующий флаг в True. По умолчанию эти значения False.

Если одна или обе матрицы содержат много нулей, для более эффективного алгоритма умножения можно установить соответствующий флаг a_is_sparse или b_is_sparse в True. По умолчанию эти значения False . Данная оптимизация доступна только для обычных матриц (тензоров ранга 2) с типами данных bfloat16 или float32.

Например:

# 2-D tensor `a`
# [[1, 2, 3],
#  [4, 5, 6]]
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])

# 2-D tensor `b`
# [[ 7,  8],
#  [ 9, 10],
#  [11, 12]]
b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2])

# `a` * `b`
# [[ 58,  64],
#  [139, 154]]
c = tf.matmul(a, b)


# 3-D tensor `a`
# [[[ 1,  2,  3],
#   [ 4,  5,  6]],
#  [[ 7,  8,  9],
#   [10, 11, 12]]]
a = tf.constant(np.arange(1, 13, dtype=np.int32),
                shape=[2, 2, 3])

# 3-D tensor `b`
# [[[13, 14],
#   [15, 16],
#   [17, 18]],
#  [[19, 20],
#   [21, 22],
#   [23, 24]]]
b = tf.constant(np.arange(13, 25, dtype=np.int32),
                shape=[2, 3, 2])

# `a` * `b`
# [[[ 94, 100],
#   [229, 244]],
#  [[508, 532],
#   [697, 730]]]
c = tf.matmul(a, b)

# Since python >= 3.5 the @ operator is supported (see PEP 465).
# In TensorFlow, it simply calls the `tf.matmul()` function, so the
# following lines are equivalent:
d = a @ b @ [[10.], [11.]]
d = tf.matmul(tf.matmul(a, b), [[10.], [11.]])
Аргументы
a Tensor типа float16, float32, float64, int32, complex64, complex128 и ранга > 1.
b Tensor с тем же типом и рангом, что и a.
transpose_a Если True, a транспонируется перед умножением.
transpose_b Если True, b транспонируется перед умножением.
adjoint_a Если True, a сопрягается и транспонируется перед умножением.
adjoint_b Если True, b сопрягается и транспонируется перед умножением.
a_is_sparse Если True, a обрабатывается как разреженная матрица.
b_is_sparse Если True, b обрабатывается как разреженная матрица.
name Имя операции (необязательно).
Возвращаемое значение
Матрица того же типа, что и a и b, где каждая внутренняя матрица является произведением соответствующих матриц в a и b, например, если все атрибуты транспонирования или сопряжения равны False:

output[..., i, j] = sum_k (a[..., i, k] * b[..., k, j]), для всех индексов i, j.

Note Это произведение матриц, а не поэлементное произведение.
Исключения
ValueError Если transpose_a и adjoint_a, или transpose_b и adjoint_b оба установлены в True.

__rmod__

Просмотреть исходный код

__rmod__(
    y, x
)

Возвращает остаток от деления по элементам. Когда x < 0 или y < 0 истинно, это соответствует семантике Python, в том смысле, что результат здесь согласуется с округлением в меньшую сторону. Например, floor(x / y) * y + mod(x, y) = x.

Примечание: math.floormod поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor. Должен быть одним из следующих типов: int32, int64, bfloat16, half, float32, float64.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor. Имеет тот же тип, что и x.

__rmul__

Просмотреть исходный код

__rmul__(
    y, x
)

Выполняет поэлементное умножение для "DenseDense" и "DenseSparse".

__ror__

Просмотреть исходный код

__ror__(
    y, x
)

Возвращает логическое ИЛИ по элементам x и y.

Примечание: math.logical_or поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor типа bool.

__rpow__

Просмотреть исходный код

__rpow__(
    y, x
)

Вычисляет степень одного значения по другому.

Даны тензор x и тензор y, эта операция вычисляет \(x^y\) для соответствующих элементов в x и y. Например:

x = tf.constant([[2, 2], [3, 3]])
y = tf.constant([[8, 16], [2, 3]])
tf.pow(x, y)  # [[256, 65536], [9, 27]]
Аргументы
x A Tensor типа float16, float32, float64, int32, int64, complex64, или complex128.
y A Tensor типа float16, float32, float64, int32, int64, complex64, или complex128.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor.

__rsub__

Просмотреть исходный код

__rsub__(
    y, x
)

Возвращает x - y поэлементно.

Примечание: Subtract поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor. Должен быть одного из следующих типов: bfloat16, half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor. Имеет тот же тип, что и x.

__rtruediv__

Просмотреть исходный код

__rtruediv__(
    y, x
)

__rxor__

Просмотреть исходный код

__rxor__(
    y, x
)

Логическая функция XOR.

x ^ y = (x | y) & ~(x & y)

Вводятся тензоры, и если тензоры содержат более одного элемента, вычисляется побитовое логическое XOR.

Использование:

x = tf.constant([False, False, True, True], dtype = tf.bool)
y = tf.constant([False, True, False, True], dtype = tf.bool)
z = tf.logical_xor(x, y, name="LogicalXor")
#  here z = [False  True  True False]
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
Возвращаемое значение
A Tensor типа bool с таким же размером, как x или y.

__sub__

Просмотреть исходный код

__sub__(
    x, y
)

Возвращает x - y поэлементно.

Примечание: Subtract поддерживает вещание. Подробнее о вещании здесь
Аргументы
x A Tensor. Должен быть одного из следующих типов: bfloat16, half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128.
y A Tensor. Должен иметь тот же тип, что и x.
name Имя операции (необязательно).
Возвращаемое значение
A Tensor. Имеет тот же тип, что и x.

__truediv__

Просмотреть исходный код

__truediv__(
    x, y
)

__xor__

Просмотреть исходный код

__xor__(
    x, y
)

Логическая функция XOR.

x ^ y = (x | y) & ~(x & y)

Вводятся тензоры, и если тензоры содержат более одного элемента, вычисляется побитовое логическое XOR.

Использование:

x = tf.constant([False, False, True, True], dtype = tf.bool)
y = tf.constant([False, True, False, True], dtype = tf.bool)
z = tf.logical_xor(x, y, name="LogicalXor")
#  here z = [False  True  True False]
Аргументы
x A Tensor типа bool.
y A Tensor типа bool.
END_OF_DOCUMENT_MARKER
Возвращаемое значение
Значение типа bool с размером, совпадающим с размером x или y.

Переменные класса

  • OVERLOADABLE_OPERATORS

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

Spec-Zone.ru

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