README.md 1.5 KB
Newer Older
1 2 3 4 5 6 7 8 9
# DeepES工具
DeepES是一个支持**快速验证**ES效果、**兼容多个框架**的C++库。
<p align="center">
<img src="DeepES.gif" alt="PARL" width="500"/>
</p>

## 使用示范
```c++
//实例化一个预测,根据配置文件加载模型,采样方式(Gaussian\CMA sampling..)、更新方式(SGD\Adam)等
Z
zenghsh3 已提交
10
auto agent = ESAgent(config); 
11

H
Hongsheng Zeng 已提交
12
for (int i = 0; i < 10; ++i) {
H
Hongsheng Zeng 已提交
13 14 15 16
   auto sampling_agnet = agent->clone(); // clone出一个sampling agent
   SamplingKey key;
   agent->add_noise(key); // 参数扰动,同时保存随机种子到key中
   int reward = evaluate(env, sampling_agent); //评估参数
17 18 19 20
   noisy_keys.push_back(key); // 记录随机噪声对应种子
   noisy_rewards.push_back(reward); // 记录评估结果
}
//根据评估结果、随机种子更新参数,然后重复以上过程,直到收敛。
Z
zenghsh3 已提交
21
agent->update(noisy_keys, noisy_rewards);
22 23 24
```

## 一键运行demo列表
Z
zenghsh3 已提交
25 26
- **PaddleLite**: sh ./scripts/build.sh paddle
- **Torch**: sh ./scripts/build.sh torch
27 28 29 30 31 32 33 34 35
- **裸写网络**

## 相关依赖:
- Protobuf >= 2.4.2
- glog
- gflag

## 额外依赖:

Z
zenghsh3 已提交
36 37 38
### 使用PaddleLite
下载PaddleLite的X86预编译库,或者编译PaddleLite源码,得到inference_lite_lib文件夹,放在当前目录中。(可参考:[PaddleLite使用X86预测部署](https://paddle-lite.readthedocs.io/zh/latest/demo_guides/x86.html))

39 40
### 使用torch 
下载[libtorch](https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.4.0%2Bcpu.zip)或者编译torch源码,得到libtorch文件夹,放在当前目录中。