तिथि को रक्षित करें! Google I / O 18-20 मई को पंजीकृत करता है

tf.sparse.SparseTensor

Represents a sparse tensor.

Used in the notebooks

Used in the guide Used in the tutorials

TensorFlow represents a sparse tensor as three separate dense tensors: indices, values, and dense_shape. In Python, the three tensors are collected into a SparseTensor class for ease of use. If you have separate indices, values, and dense_shape tensors, wrap them in a SparseTensor object before passing to the ops below.

Concretely, the sparse tensor SparseTensor(indices, values, dense_shape) comprises the following components, where N and ndims are the number of values and number of dimensions in the SparseTensor, respectively:

  • indices: A 2-D int64 tensor of shape [N, ndims], which specifies the indices of the elements in the sparse tensor that contain nonzero values (elements are zero-indexed). For example, indices=[[1,3], [2,4]] specifies that the elements with indexes of [1,3] and [2,4] have nonzero values.

  • values: A 1-D tensor of any type and shape [N], which supplies the values for each element in indices. For example, given indices=[[1,3], [2,4]], the parameter values=[18, 3.6] specifies that element [1,3] of the sparse tensor has a value of 18, and element [2,4] of the tensor has a value of 3.6.

  • dense_shape: A 1-D int64 tensor of shape [ndims], which specifies the dense_shape of the sparse tensor. Takes a list indicating the number of elements in each dimension. For example, dense_shape=[3,6] specifies a two-dimensional 3x6 tensor, dense_shape=[2,3,4] specifies a three-dimensional 2x3x4 tensor, and dense_shape=[9] specifies a one-dimensional tensor with 9 elements.

The corresponding dense tensor satisfies:

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

By convention, indices should be sorted in row-major order (or equivalently lexicographic order on the tuples indices[i]). This is not enforced when SparseTensor objects are constructed, but most ops assume correct ordering. If the ordering of sparse tensor st is wrong, a fixed version can be obtained by calling tf.sparse.reorder(st).

Example: The sparse tensor

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

represents the dense tensor

[[1, 0, 0, 0]
 [0, 0, 2, 0]
 [0, 0, 0, 0]]

indices A 2-D int64 tensor of shape [N, ndims].
values A 1-D tensor of any type and shape [N].
dense_shape A 1-D int64 tensor of shape [ndims].

ValueError When building an eager SparseTensor if dense_shape is unknown or contains unknown elements (None or -1).

dense_shape A 1-D Tensor of int64 representing the shape of the dense tensor.
dtype The DType of elements in this tensor.
graph The Graph that contains the index, value, and dense_shape tensors.
indices The indices of non-zero values in the represented dense tensor.
op The Operation that produces values as an output.
shape Get the TensorShape representing the shape of the dense tensor.
values The non-zero values in the represented dense tensor.

Methods

consumers

View source

eval

View source

Evaluates this sparse tensor in a Session.

Calling this method will execute all preceding operations that produce the inputs needed for the operation that produces this tensor.

Args
feed_dict A dictionary that maps Tensor objects to feed values. See tf.Session.run for a description of the valid feed values.
session (Optional.) The Session to be used to evaluate this sparse tensor. If none, the default session will be used.

Returns
A SparseTensorValue object.

from_value

View source

get_shape

View source

Get the TensorShape representing the shape of the dense tensor.

Returns
A TensorShape object.

with_values

View source

Returns a copy of self with values replaced by new_values.

This method produces a new SparseTensor that has the same nonzero indices and same dense_shape, but updated values.

Args
new_values The values of the new SparseTensor. Needs to have the same shape as the current .values Tensor. May have a different type than the current values.

Returns
A SparseTensor with identical indices and shape but updated values.

Example usage:

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__

View source