MNN/docs/cpp/Optimizer.md

149 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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对象大小