Spec-Zone.ru › TensorFlow 2.3

tf.sparse.SparseTensor

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

Представляет разреженный тензор.

Псевдонимы

Основные псевдонимы

tf.SparseTensor

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

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

tf.compat.v1.SparseTensor, tf.compat.v1.sparse.SparseTensor

tf.sparse.SparseTensor(
    indices, values, dense_shape
)

TensorFlow представляет разреженный тензор как три отдельных плотных тензора: indices, values, и dense_shape. В Python три тензора объединены в класс SparseTensor для удобства использования. Если у вас есть отдельные тензоры indices, values, и dense_shape, оберните их в объект SparseTensor перед передачей в нижеследующие операции.

Конкретно, разреженный тензор SparseTensor(indices, values, dense_shape) состоит из следующих компонентов, где N и ndims — количество значений и количество измерений в SparseTensor, соответственно:

  • indices: двумерный тензор int64 формы [N, ndims], который указывает индексы элементов в разреженном тензоре, содержащие ненулевые значения (элементы нумеруются с нуля). Например, indices=[[1,3], [2,4]] указывает, что элементы с индексами [1,3] и [2,4] имеют ненулевые значения.

  • values: одномерный тензор любого типа и формы [N], который предоставляет значения для каждого элемента в indices. Например, при заданном indices=[[1,3], [2,4]], параметр values=[18, 3.6] указывает, что элемент [1,3] разреженного тензора имеет значение 18, а элемент [2,4] тензора имеет значение 3,6.

  • dense_shape: одномерный тензор int64 формы [ndims], который указывает плотную форму разреженного тензора. Принимает список, указывающий количество элементов в каждом измерении. Например, dense_shape=[3,6] указывает двумерный тензор 3x6, dense_shape=[2,3,4] указывает трехмерный тензор 2x3x4, а dense_shape=[9] указывает одномерный тензор с 9 элементами.

Соответствующий плотный тензор удовлетворяет:

dense.shape = dense_shape
dense[tuple(indices[i])] = values[i]

По соглашению indices должен быть отсортирован в порядке следования строк (или, что эквивалентно, в лексикографическом порядке по кортежам indices[i]). Это не проверяется при создании объектов SparseTensor, но большинство операций предполагают правильный порядок. Если порядок разреженного тензора st неверный, можно получить исправленную версию, вызвав tf.sparse.reorder(st).

Пример: разреженный тензор

SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 2], dense_shape=[3, 4])

представляет плотный тензор

[[1, 0, 0, 0]
 [0, 0, 2, 0]
 [0, 0, 0, 0]]
Аргументы
indices Двумерный тензор int64 формы [N, ndims].
values Одномерный тензор любого типа и формы [N].
dense_shape Одномерный тензор int64 формы [ndims].
Исключения
ValueError При создании оперативного SparseTensor, если dense_shape неизвестно или содержит неизвестные элементы (None или -1).
Атрибуты
dense_shape Одномерный тензор int64, представляющий форму плотного тензора.
dtype Количество элементов в этом тензоре.
graph Объект, содержащий тензоры индексов, значений и dense_shape.
indices Индексы ненулевых значений в представленном плотном тензоре.
op Операция, которая генерирует values в качестве выходного значения.
shape Получить форму, представляющую форму плотного тензора.
values Ненулевые значения в представленном плотном тензоре.

Методы

consumers

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

consumers()

eval

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

eval(
    feed_dict=None, session=None
)

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

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

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

from_value

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

@classmethod
from_value(
    sparse_tensor_value
)

get_shape

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

get_shape()

Получить форму, представляющую форму плотного тензора.

Возвращает
Объект TensorShape .

__div__

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

__div__(
    sp_x, y
)

Делит разреженный тензор на плотный тензор покомпонентно.

Ограничение: эта операция транслирует только плотный тензор в разреженный, но не в обратную сторону.

Аргументы
sp_indices Разреженный тензор типа int64. Двумерный. Матрица с индексами ненулевых значений в SparseTensor, возможно, не в каноническом порядке.
sp_values Плотный тензор. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, uint16, complex128, half, uint32, uint64. Одномерный.
sp_shape Одномерный тензор типа int64. Форма входного разреженного тензора.
dense Плотный тензор. Должен иметь тот же тип, что и sp_values. Многомерный. Операнд плотного тензора.
name Имя операции (необязательно).
Возвращает
Разреженный тензор. Имеет тот же тип, что и sp_values.

__mul__

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

__mul__(
    sp_x, y
)

Умножает разреженный тензор на плотный тензор покомпонентно.

Положения в выходном тензоре, соответствующие неявно нулевым элементам в разреженном тензоре, будут нулевыми (т. е. не будут занимать места в памяти), независимо от содержимого плотного тензора (даже если он +/-INF и INF*0 == NaN).

Ограничение: эта операция транслирует только плотный тензор в разреженный, но не в обратную сторону.

Аргументы
sp_indices A Tensor типа int64. 2-мерная. N x R матрица с индексами ненулевых значений в SparseTensor, возможно, не в каноническом порядке.
sp_values A Tensor. Должен быть одного из следующих типов: float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, uint16, complex128, half, uint32, uint64. 1-мерный. N ненулевых значений, соответствующих sp_indices.
sp_shape A Tensor типа int64. 1-мерный. Форма входного SparseTensor.
dense A Tensor. Должен иметь тот же тип, что и sp_values. R-мерный. Операнд плотного тензора.
name Имя операции (необязательно).
Возвращаемые значения
A Tensor. Имеет тот же тип, что и sp_values.

__truediv__

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

__truediv__(
    sp_x, y
)

Внутренняя вспомогательная функция для 'sp_t / dense_t'.

© 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/r2.3/api_docs/python/tf/sparse/SparseTensor

Spec-Zone.ru

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