tf.IndexedSlices

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

Used in the notebooks

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_shape` A 1-D `Tensor` containing the shape of the corresponding dense tensor.
`device` The name of the device on which `values` will be produced, or `None`.
`dtype` The `DType` of elements in this tensor.
`graph` The `Graph` that contains the values, indices, and shape tensors.
`indices` A 1-D `Tensor` containing the indices of the slices.
`name` The name of this `IndexedSlices`.
`op` The `Operation` that produces `values` as an output.
`shape` Gets the `tf.TensorShape` representing the shape of the dense tensor.
`values` A `Tensor` containing the values of the slices.

Methods

View source

`__neg__`

View source

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "