# Tensor¶

There are two data structures used in Fluid to host the data, namely Tensor and LoD_Tensor . LoD-Tensor is a unique concept of Fluid, which appends sequence information to Tensor. The data that can be transferred in the framework includes: input, output, and learnable parameters in the network. All of them are uniformly represented by LoD-Tensor. In addition, tensor can be regarded as a special LoD-Tensor.

Now let’s take a closer look at the operations related to these two types of data.

## Tensor¶

### 1. create_tensor¶

Tensor is used to carry data in the framework, using create_tensor to create a Lod-Tensor variable of the specified the data type.

API reference : create_tensor

### 2. create_parameter¶

The neural network training process is a learning process for parameters. Fluid uses create_parameter to create a learnable parameter. The value of this parameter can be changed by the operator.

API reference : create_parameter

### 3. create_global_var¶

Fluid uses create_global_var to create a global tensor and this API allows you to specify the data type, shape, and value of the Tensor variable being created.

API reference : create_global_var

### 4. cast¶

Fluid uses cast to convert the data to the specified type.

API reference : cast

### 5.concat¶

Fluid uses concat to concatenate input data along a specified dimension.

API reference : concat

### 6. sums¶

Fluid uses sums to sum up the input data.

API reference : sums

### 7. fill_constant_batch_size_like¶

Fluid uses fill_constant_batch_size_like to create a Tensor with a specific shape, type, and batch_size. And the initial value of the Tensor can be specified as an arbitrary constant. The batch_size information is determined by the tensor’s input_dim_idx and output_dim_idx.

API reference : fill_constant_batch_size_like

### 8. fill_constant¶

Fluid uses fill_constant to create a Tensor with a specific shape and type. The initial value of this variable can be set via value.

API reference : fill_constant

### 9. assign¶

Fluid uses assign to duplicate a variable.

API reference : assign

### 10. argmin¶

Fluid uses argmin to calculate the index of the smallest element on the specified axis of Tensor.

API reference : argmin

### 11. argmax¶

Fluid uses argmax to calculate the index of the largest element on the specified axis of Tensor.

API reference : argmax

### 12. argsort¶

Fluid uses argsort to sort the input Tensor on the specified axis and it will return the sorted data variables and their corresponding index values.

API reference : argsort

### 13. ones¶

Fluid uses ones to create a Tensor of the specified size and data type with an initial value of 1.

API reference : ones

### 14. zeros¶

Fluid uses zeros to create a Tensor of the specified size and data type with an initial value of zero.

API reference : zeros

### 15. reverse¶

Fluid uses reverse to invert Tensor along the specified axis.

API reference : reverse

## LoD-Tensor¶

LoD-Tensor is very suitable for sequence data. For related knowledge, please read Tensor and LoD_Tensor .

### 1.create_lod_tensor¶

Fluid uses create_lod_tensor to create a LoD_Tensor with new hierarchical information based on a numpy array, a list, or an existing LoD_Tensor.

API reference : create_lod_tensor

### 2. create_random_int_lodtensor¶

Fluid uses create_random_int_lodtensor to create a LoD_Tensor composed of random integers.

API reference : create_random_int_lodtensor

### 3. reorder_lod_tensor_by_rank¶

Fluid uses reorder_lod_tensor_by_rank to reorder the sequence information of the input LoD_Tensor in the specified order.

API reference : reorder_lod_tensor_by_rank