Gym.NET
将 openai/gym 移植到 C# 的项目。
openai/gym
OpenAI Gym 是一个用于开发和比较强化学习算法的工具包。这是 gym 的开源库,它为您提供了标准化的一组环境。
安装
### 安装 gym 的 RL 抽象类:
PM> Install-Package Gym.NET
### 安装实现的环境:
PM> Install-Package Gym.NET.Environments
PM> Install-Package Gym.NET.Rendering.Avalonia
PM> Install-Package Gym.NET.Rendering.WinForm
示例
以下示例运行并渲染 cartpole-v1 环境。
using NumSharp;
using SixLabors.ImageSharp;
using Gym.Environments;
using Gym.Environments.Envs.Classic;
using Gym.Rendering.WinForm;
CartPoleEnv cp = new CartPoleEnv(WinFormEnvViewer.Factory); //或 AvaloniaEnvViewer.Factory
bool done = true;
for (int i = 0; i < 100_000; i++)
{
if (done)
{
NDArray observation = cp.Reset();
done = false;
}
else
{
var (observation, reward, _done, information) = cp.Step((i % 2)); //我们在左右移动之间切换
done = _done;
//做一些有关 reward 和 observation 的事情。
}
SixLabors.ImageSharp.Image img = cp.Render(); //返回渲染的图像。
Thread.Sleep(15); //这是为了防止它立即完成!
}
cp.Close();
路线图
-
实现 Spaces
-
Space
(基类) -
Box
-
Discrete
-
multi.*.py
-
-
实现 Env 基类
- Env(object)
- GoalEnv(Env)
-
实现环境
要运行一个环境,请参见 Gym.Tests- 将 Gym.Environments 转换为 Net-Standard 项目。
- 经典环境
- CartPole-v1
- 与 Python 版本进行视觉比较
- walker2d_v3
- acrobot
- continuous_mountain_car
- mountain_car
- pendulum
- 渲染
- CartPole-v1
- Mujco
- ant_v3
- half_cheetah_v3
- hopper_v3
- humanoid_v3
- humanoidstandup
- inverted_double_pendulum
- inverted_pendulum
- mujoco_env
- pusher
- reacher
- striker
- swimmer_v3
- thrower
- box2d
- bipedal_walker
- car_dynamics
- car_racing
- lunar_lander
- atari