tf.sparse_reset_shape( sp_input, new_shape=None )
See the guide: Sparse Tensors > Manipulation
Resets the shape of a
SparseTensor with indices and values unchanged.
new_shape is None, returns a copy of
sp_input with its shape reset
to the tight bounding box of
sp_input. This will be a shape consisting of
all zeros if sp_input has no values.
new_shape is provided, then it must be larger or equal in all dimensions
compared to the shape of
sp_input. When this condition is met, the returned
SparseTensor will have its shape reset to
new_shape and its indices and
values unchanged from that of
sp_input with shape [2, 3, 5]:
[0, 0, 1]: a [0, 1, 0]: b [0, 2, 2]: c [1, 0, 3]: d
It is an error to set
new_shapeas [3, 7] since this represents a rank-2 tensor while
sp_inputis rank-3. This is either a ValueError during graph construction (if both shapes are known) or an OpError during run time.
new_shapeas [2, 3, 6] will be fine as this shape is larger or equal in every dimension compared to the original shape [2, 3, 5].
On the other hand, setting new_shape as [2, 3, 4] is also an error: The third dimension is smaller than the original shape [2, 3, 5] (and an
InvalidArgumentErrorwill be raised).
new_shapeis None, the returned SparseTensor will have a shape [2, 3, 4], which is the tight bounding box of
sp_input: The input
new_shape: None or a vector representing the new shape for the returned
SparseTensor indices and values unchanged from
input_sp. Its shape is
new_shape if that is set. Otherwise it is the tight bounding box of
sp_inputis not a
new_shaperepresents a tensor with a different rank from that of
sp_input(if shapes are known when graph is constructed).
new_shapeis determined during graph build to have dimension sizes that are too small.
OpError: - If
new_shapehas dimension sizes that are too small.
- If shapes are not known during graph construction time, and during run time it is found out that the ranks do not match.