W3cubDocs

/TensorFlow C++

tensorflow::ops::TakeManySparseFromTensorsMap

#include <sparse_ops.h>

Converts a sparse representation into a dense tensor.

Summary

Builds an array dense with shape output_shape such that

If sparse_indices is scalar

dense[i] = (i == sparse_indices ? sparse_values : default_value)

If sparse_indices is a vector, then for each i

dense[sparse_indices[i]] = sparse_values[i]

If sparse_indices is an n by d matrix, then for each i in [0, n)

dense[sparse_indices[i][0], ..., sparse_indices[i][d-1]] = sparse_values[i]

All other values in `dense` are set to `default_value`.  If `sparse_values` is a
    scalar, all sparse indices are set to this single value.
Indices should be sorted in lexicographic order, and indices must not
contain any repeats. If `validate_indices` is true, these properties
are checked during execution.
Arguments:
* scope: A Scope object
* sparse_indices: 0-D, 1-D, or 2-D.  `sparse_indices[i]` contains the complete
index where `sparse_values[i]` will be placed.
* output_shape: 1-D.  Shape of the dense output tensor.
* sparse_values: 1-D.  Values corresponding to each row of `sparse_indices`,
or a scalar value to be used for all sparse indices.
* default_value: Scalar value to set for indices not specified in
`sparse_indices`.
Optional attributes (see `Attrs`):
* validate_indices: If true, indices are checked to make sure they are sorted in
lexicographic order and that there are no repeats.
    Returns:
    * `Output`: Dense output tensor of shape `output_shape`. */
class SparseToDense {
 public:
  /// Optional attribute setters for SparseToDense
  struct Attrs {
    /** If true, indices are checked to make sure they are sorted in
        lexicographic order and that there are no repeats.
    Defaults to true */
TF_MUST_USE_RESULT Attrs ValidateIndices(bool x) {
  Attrs ret = *this;
  ret.validate_indices_ = x;
  return ret;
}
  bool validate_indices_ = true;
};
SparseToDense(const tensorflow::Scope& scope, tensorflow::Input
            sparse_indices, tensorflow::Input output_shape,
            tensorflow::Input sparse_values, tensorflow::Input
            default_value);
SparseToDense(const tensorflow::Scope& scope, tensorflow::Input
            sparse_indices, tensorflow::Input output_shape,
            tensorflow::Input sparse_values, tensorflow::Input
            default_value, const SparseToDense::Attrs& attrs);
operator ::tensorflow::Output() const { return dense; }
operator ::tensorflow::Input() const { return dense; }
::tensorflow::Node* node() const { return dense.node(); }
static Attrs ValidateIndices(bool x) {
  return Attrs().ValidateIndices(x);
}
tensorflow::Output dense;
};
/** Read `SparseTensors` from a `SparseTensorsMap` and concatenate them.
The input `sparse_handles` must be an `int64` matrix of shape `[N, 1]` where
`N` is the minibatch size and the rows correspond to the output handles of
`AddSparseToTensorsMap` or `AddManySparseToTensorsMap`.  The ranks of the
original `SparseTensor` objects that went into the given input ops must all
match.  When the final `SparseTensor` is created, it has rank one
higher than the ranks of the incoming `SparseTensor` objects
(they have been concatenated along a new row dimension on the left).
The output `SparseTensor` object's shape values for all dimensions but the
first are the max across the input `SparseTensor` objects' shape values
for the corresponding dimensions.  Its first shape value is `N`, the minibatch
size.
The input `SparseTensor` objects' indices are assumed ordered in
standard lexicographic order.  If this is not the case, after this
step run `SparseReorder` to restore index ordering.
For example, if the handles represent an input, which is a `[2, 3]` matrix
representing two original `SparseTensor` objects:
index = [ 0] [10] [20] values = [1, 2, 3] shape = [50]
and
index = [ 2] [10] values = [4, 5] shape = [30]
then the final `SparseTensor` will be:
index = [0 0] [0 10] [0 20] [1 2] [1 10] values = [1, 2, 3, 4, 5] shape = [2 50] ```

Arguments:

  • scope: A Scope object
  • sparse_handles: 1-D, The N serialized SparseTensor objects. Shape: [N].
  • dtype: The dtype of the SparseTensor objects stored in the SparseTensorsMap.

Optional attributes (see Attrs):

  • container: The container name for the SparseTensorsMap read by this op.
  • shared_name: The shared name for the SparseTensorsMap read by this op. It should not be blank; rather the shared_name or unique Operation name of the Op that created the original SparseTensorsMap should be used.

Returns:

  • Output sparse_indices: 2-D. The indices of the minibatch SparseTensor.
  • Output sparse_values: 1-D. The values of the minibatch SparseTensor.
  • Output sparse_shape: 1-D. The shape of the minibatch SparseTensor.
Constructors and Destructors
TakeManySparseFromTensorsMap(const ::tensorflow::Scope & scope, ::tensorflow::Input sparse_handles, DataType dtype)
TakeManySparseFromTensorsMap(const ::tensorflow::Scope & scope, ::tensorflow::Input sparse_handles, DataType dtype, const TakeManySparseFromTensorsMap::Attrs & attrs)
Public attributes
sparse_indices
sparse_shape
sparse_values
Public static functions
Container(StringPiece x)
SharedName(StringPiece x)
Structs
tensorflow::ops::TakeManySparseFromTensorsMap::Attrs

Optional attribute setters for TakeManySparseFromTensorsMap.

Public attributes

sparse_indices

::tensorflow::Output sparse_indices

sparse_shape

::tensorflow::Output sparse_shape

sparse_values

::tensorflow::Output sparse_values

Public functions

TakeManySparseFromTensorsMap

 TakeManySparseFromTensorsMap(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input sparse_handles,
  DataType dtype
)

TakeManySparseFromTensorsMap

 TakeManySparseFromTensorsMap(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input sparse_handles,
  DataType dtype,
  const TakeManySparseFromTensorsMap::Attrs & attrs
)

Public static functions

Container

Attrs Container(
  StringPiece x
)

SharedName

Attrs SharedName(
  StringPiece x
)

© 2018 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/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map.html