# 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

<br />

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


# If sparse_indices is a vector, then for each i

<br />

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


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

<br />

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

```````

  
    https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/all#classtensorflow_1_1ops_1_1_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);
  }
```

  
  
    
```
Operation operation;
  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] <br />



  

    

```
    and
```

  
<br />



  
<br />



`````
 index = [ 2] [10] values = [4, 5] shape = [30] <br />



  

    

```
    then the final `SparseTensor` will be:
```

  
<br />



  
<br />



````
 index = [0 0] [0 10] [0 20] [1 2] [1 10] values = [1, 2, 3, 4, 5] shape = [2 50] ```
  Arguments:
      
- scope: A https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_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 `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/take-many-sparse-from-tensors-map/attrs#structtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1_1_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 https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation name of the Op that created the original `SparseTensorsMap` should be used.

    

  Returns:
      
- `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` sparse_indices: 2-D. The `indices` of the minibatch `SparseTensor`.

      
- `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` sparse_values: 1-D. The `values` of the minibatch `SparseTensor`.

      
- `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` sparse_shape: 1-D. The `shape` of the minibatch `SparseTensor`. 

    

                                              


        
### Constructors and Destructors


      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a83e35de64de0efe9f8dde569c0f07c19(const ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input sparse_handles, DataType dtype)`
        

      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a41a02ee43f2ac5b803bfaf422e93996c(const ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input sparse_handles, DataType dtype, const https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/take-many-sparse-from-tensors-map/attrs#structtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1_1_attrs & attrs)`
        

      


                                                                                                  


        
### Public attributes


      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a9e44ee5dfd10ac82974527c4f79e72f4`
      

        
          `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation`
        
      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a2bf4dc72b65cf3aba1bb9d9da37e0d75`
      

        
          `::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`
        
      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a2bc04b48df2df2f26a1d9457b99e824d`
      

        
          `::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`
        
      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a13b416e0f903165522e36315dab400c4`
      

        
          `::https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`
        
      


                                                          


        
### Public static functions


      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1adba16ce7b05be3dc85601cd7cce43cb2(StringPiece x)`
      

        
          `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/take-many-sparse-from-tensors-map/attrs#structtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1_1_attrs`
        
      



        `https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1a3b66a348014e00a092326b498128eb35(StringPiece x)`
      

        
          `https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/take-many-sparse-from-tensors-map/attrs#structtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map_1_1_attrs`
        
      


                                      


        
### Structs


      



        https://www.tensorflow.org/versions/r2.0/api_docs/cc/struct/tensorflow/ops/take-many-sparse-from-tensors-map/attrs
      

        
Optional attribute setters for https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/take-many-sparse-from-tensors-map#classtensorflow_1_1ops_1_1_take_many_sparse_from_tensors_map. 

      


  Public attributes
  
    
### operation


    
```
Operation operation
```

    
  
  
    
### 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
)
```

    
  

  

  
````
`````
``````
```````