MNN/docs/cpp/Optimizer.md

149 lines
2.3 KiB
Markdown
Raw Normal View History

# Optimizer
```cpp
class Optimizer
```
## 枚举类
### Device
```cpp
enum Device {
CPU = 0,
GPU = 1,
OTHER = 2,
AUTO = 3
};
```
| value | name | 说明 |
|:------|:-----|:-----------------|
| 0 | `CPU` | 中央处理器 |
| 1 | `GPU` | 图像处理器 |
| 2 | `OTHER` | 其他 |
| 3 | `AUTO` | 自定义 |
## 成员函数
---
### Optimizer
构造函数
```cpp
Optimizer() = default;
```
创建一个空Optimizer
参数:无
返回Optimizer对象
---
### ~Optimizer
析构函数
```cpp
virtual ~Optimizer() = default;
```
创建一个空Optimizer
参数:无
返回Optimizer对象
---
### create
```cpp
static std::shared_ptr<Optimizer> create(Config config);
```
创建一个Optimizer对象
参数:
- `config` 配置信息包括线程、Device和MNNForwardType等信息
返回Optimizer对象
---
### onGetParameters
```cpp
virtual std::shared_ptr<Parameters> onGetParameters(const std::vector<VARP>& outputs) {
return nullptr;
};
```
获取Optimizer对象的参数
参数:
- `outputs` Optimizer输出信息
返回Optimizer对象的参数
---
### onMeasure
```cpp
virtual Cost onMeasure(const std::vector<VARP>& outputs, std::shared_ptr<Parameters> parameters = nullptr) = 0;
```
返回Cost对象信息包括compute(计算)和memory(内存)信息parameters必须与onGetParameters相同
参数:
- `outputs` Optimizer输出信息
- `parameters` 与onGetParameters相同
返回Cost对象信息
---
### onExecute
```cpp
virtual bool onExecute(const std::vector<VARP>& outputs, std::shared_ptr<Parameters> parameters = nullptr) = 0;
```
修改输出信息parameters必须与onGetParameters相同
参数:
- `outputs` Optimizer输出信息
- `parameters` 与onGetParameters相同
返回:是否修改输出成功
## Parameters
```cpp
class Parameters
```
## 成员函数
---
### Parameters
```cpp
Parameters(int n);
```
创建一个Parameters对象
参数:
- `n` 成员个数
返回Parameters对象
---
### ~Parameters
析构函数
---
### get
```cpp
float* get() const {
return mValue;
};
```
获取Parameters对象成员数量
参数:无
返回Parameters对象成员数量
---
### size
```cpp
int size() const {
return mSize;
};
```
获取Parameters对象大小
参数:无
返回Parameters对象大小