Spec-Zone.ru › TensorFlow 2.4

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: 2-мерный тензор 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: 1-мерный тензор 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 2-мерный тензор int64 формы [N, ndims].
values 1-мерный тензор любого типа и формы [N].
dense_shape 1-мерный тензор int64 формы [ndims].
Исключения
ValueError При создании нетерпеливого SparseTensor, если dense_shape неизвестно или содержит неизвестные элементы (None или -1).
Атрибуты
dense_shape 1-мерный тензор 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.

with_values

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

with_values(
    new_values
)

Возвращает копию self со значениями values замененными на new_values.

Этот метод создает новый разреженный тензор, который имеет те же ненулевые значения и ту же форму, но обновлённые значения.

Аргументы
new_values Значения нового разреженного тензора. Необходимо, чтобы форма соответствовала текущей форме .values Tensor. Может иметь тип, отличный от текущего типа values.
Возвращает
Разреженный тензор с идентичными индексами и формой, но обновленными значениями.

Пример использования:

st = tf.sparse.from_dense([[1, 0, 2, 0], [3, 0, 0, 4]])
tf.sparse.to_dense(st.with_values([10, 20, 30, 40]))  # 4 nonzero values
<tf.Tensor: shape=(2, 4), dtype=int32, numpy=
array([[10,  0, 20,  0],
       [30,  0,  0, 40]], dtype=int32)>

__div__

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

__div__(
    sp_x, y
)

Компонентово-поэлементное деление SparseTensor на плотный тензор.

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

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

__mul__

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

__mul__(
    sp_x, y
)

Компонентово-поэлементное умножение SparseTensor на плотный тензор.

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

Ограничение: данная операция транслирует плотное представление в разреженное, но не наоборот.

Аргументы
sp_indices A Tensor типа int64. 2-мерная. N x R матрица с индексами ненулевых значений в разреженном тензоре, возможно, не в каноническом порядке.
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-мерный. Размер входного разреженного тензора.
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.4/api_docs/python/tf/sparse/SparseTensor

Spec-Zone.ru

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