Tensor.md 2.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
## Tensor

```c++
class Tensor
```

Tensor是Paddle-Lite的数据组织形式,用于对底层数据进行封装并提供接口对数据进行操作,包括设置Shape、数据、LoD信息等。

*注意:用户应使用`CxxPredictor`或`LightPredictor`的`get_input`和`get_output`接口获取输入/输出的`Tensor`。*

示例:

```python
from paddlelite.lite import *

# 1. 设置CxxConfig
config = CxxConfig()
if args.model_file != '' and args.param_file != '':
    config.set_model_file(args.model_file)
    config.set_param_file(args.param_file)
else:
    config.set_model_dir(args.model_dir)
places = [Place(TargetType.ARM, PrecisionType.FP32)]
config.set_valid_places(places)

# 2. 创建CxxPredictor
predictor = create_paddle_predictor(config)

# 3. 设置输入数据
input_tensor = predictor.get_input(0)
input_tensor.resize([1, 3, 224, 224])
input_tensor.set_float_data([1.] * 3 * 224 * 224)

# 4. 运行模型
predictor.run()

# 5. 获取输出数据
output_tensor = predictor.get_output(0)
print(output_tensor.shape())
print(output_tensor.float_data()[:10])
```

### `resize(shape)`

设置Tensor的维度信息。

参数:

- `shape(list)` - 维度信息

返回:`None`

返回类型:`None`



### `shape()`

获取Tensor的维度信息。

参数:

- `None`

返回:Tensor的维度信息

返回类型:`list`



### `float_data()`

获取Tensor的持有的float型数据。

示例:

```python
output_tensor = predictor.get_output(0)
print(output_tensor.shape())
print(output_tensor.float_data()[:10])
```

参数:

- `None`

返回:`Tensor`持有的float型数据

返回类型:`list`



### `set_float_data(float_data)`

设置Tensor持有float数据。

示例:

```python
input_tensor = predictor.get_input(0)
input_tensor.resize([1, 3, 224, 224])
input_tensor.set_float_data([1.] * 3 * 224 * 224)
```

参数:

- `float_data(list)` - 待设置的float型数据

返回:`None`

返回类型:`None`



### `set_lod(lod)`

设置Tensor的LoD信息。

参数:

- `lod(list[list])` - Tensor的LoD信息

返回:`None`

返回类型:`None`



### `lod()`

获取Tensor的LoD信息

参数:

- `None`

返回:`Tensor`的LoD信息

返回类型:`list[list]`