CxxConfig.md 3.7 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 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
## CxxConfig

```python
class CxxConfig;
```

`CxxConfig`用来配置构建CxxPredictor的配置信息,如protobuf格式的模型地址、能耗模式、工作线程数、place信息等等。

示例:

```python
from paddlelite.lite import *

config = CxxConfig()
# 设置模型目录,加载非combined模型时使用
config.set_model_dir(<your_model_dir_path>)
# 设置工作线程数(该接口只支持armlinux)
# config.set_threads(4);
# 设置能耗模式(该接口只支持armlinux)
# config.set_power_mode(PowerMode.LITE_POWER_NO_BIND)
# 设置valid places
places = [Place(TargetType.ARM, PrecisionType.FP32)]
config.set_valid_places(places)

# 根据CxxConfig创建CxxPredictor
predictor = lite.create_paddle_predictor(config)
```

### `set_model_dir(model_dir)`

设置模型文件夹路径,当需要从磁盘加载非combined模型时使用。

参数:

- `model_dir(str)` - 模型文件夹路径

返回:`None`

返回类型:`None`



### `model_dir()`

返回设置的模型文件夹路径。

参数:

- `None`

返回:模型文件夹路径

返回类型:`str`



### `set_model_file(model_file)`

设置模型文件路径,加载combined形式模型时使用。

参数:

- `model_file(str)` - 模型文件路径

返回类型:`None`



### `model_file()`

获取设置模型文件路径,加载combined形式模型时使用。

参数:

- `None`

返回:模型文件路径

返回类型:`str`



### `set_param_file(param_file)`

设置模型参数文件路径,加载combined形式模型时使用。

参数:

- `param_file(str)` - 模型文件路径

返回类型:`None`



### `param_file()`

获取设置模型参数文件路径,加载combined形式模型时使用。

参数:

- `None`

返回:模型参数文件路径

返回类型:`str`



### `set_valid_places(valid_places)`

设置可用的places列表。

参数:

- `valid_places(list)` - 可用place列表。

返回类型:`None`

示例:

```python
from paddlelite.lite import *

config = CxxConfig()
# 设置模型目录,加载非combined模型时使用
config.set_model_dir(<your_model_dir_path>)
# 设置valid places
# 注意,valid_places列表中Place的排序表明了用户对Place的偏好程度,如用户想优先使用ARM上Int8精度的
# kernel,则应把Place(TargetType.ARM, PrecisionType.INT8)置于valid_places列表的首位。
places = [Place(TargetType.ARM, PrecisionType.INT8),
          Place(TargetType.ARM, PrecisionType.FP32)]
config.set_valid_places(places)

# 根据CxxConfig创建CxxPredictor
predictor = create_paddle_predictor(config)
```



### `set_power_mode(mode)`

设置CPU能耗模式,该接口只支持`armlinux`平台。若不设置,则默认使用`PowerMode.LITE_POWER_HIGH`

*注意:只在开启`OpenMP`时生效,否则系统自动调度。此函数只在使用`LITE_WITH_ARM`编译选项下生效。*

参数:

- `mode(PowerMode)` - CPU能耗模式

返回:`None`

返回类型:`None`



### `power_mode()`

获取设置的CPU能耗模式,该接口只支持`armlinux`平台。

*注意:此函数只在使用`LITE_WITH_ARM`编译选项下生效。*

参数:

- `None`

返回:设置的CPU能耗模式

返回类型:`PowerMode`



### `set_threads(threads)`

设置工作线程数,该接口只支持`armlinux`平台。若不设置,则默认使用单线程。

*注意:只在开启`OpenMP`的模式下生效,否则只使用单线程。此函数只在使用`LITE_WITH_ARM`编译选项下生效。*

参数:

- `threads(int)` - 工作线程数

返回:`None`

返回类型:`None`



### `threads()`

获取设置的工作线程数,该接口只支持`armlinux`平台。

*注意:此函数只在使用`LITE_WITH_ARM`编译选项下生效。*

参数:

- `None`

返回:工作线程数

返回类型:`int`