tf.IndexedSlices

A sparse representation of a set of tensor slices at given indices.

Used in the notebooks

Used in the tutorials

This class is a simple wrapper for a pair of Tensor objects:

  • values: A Tensor of any dtype with shape [D0, D1, ..., Dn].
  • indices: A 1-D integer Tensor with shape [D0].

An IndexedSlices is typically used to represent a subset of a larger tensor dense of shape [LARGE0, D1, .. , DN] where LARGE0 >> D0. The values in indices are the indices in the first dimension of the slices that have been extracted from the larger tensor.

The dense tensor dense represented by an IndexedSlices slices has

dense[slices.indices[i], :, :, :, ...] = slices.values[i, :, :, :, ...]

The IndexedSlices class is used principally in the definition of gradients for operations that have sparse gradients (e.g. tf.gather).

v = tf.Variable([[0.,1, 2], [2, 3, 4], [4, 5, 6], [6, 7, 8]])
with tf.GradientTape() as tape:
  r = tf.gather(v, [1,3])
index_slices = tape.gradient(r,v)
index_slices
<...IndexedSlices object ...>
index_slices.indices.numpy()
array([1, 3], dtype=int32)
index_slices.values.numpy()
array([[1., 1., 1.],
       [1., 1., 1.]], dtype=float32)

Contrast this representation with tf.sparse.SparseTensor, which uses multi-dimensional indices and scalar values.

dense_shapeA 1-D Tensor containing the shape of the corresponding dense tensor.
deviceThe name of the device on which values will be produced, or None.
dtypeThe DType of elements in this tensor.
graphThe Graph that contains the values, indices, and shape tensors.
indicesA 1-D Tensor containing the indices of the slices.
nameThe name of this IndexedSlices.
opThe Operation that produces values as an output.
shapeGets the tf.TensorShape representing the shape of the dense tensor.
valuesA Tensor containing the values of the slices.

Methods

consumers

View source

__neg__

View source