Files
2026-07-13 13:33:03 +08:00

139 lines
2.2 KiB
Markdown

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