汉城AI体育馆:汉城AI体育馆是一个开发人工智能算法的工具包。

seoulai-gym的Python项目详细描述


首尔人工智能健身房

首尔人工智能健身房是一个开发人工智能算法的工具包。 这个gym模拟环境并使您能够在代理上应用任何教学技术。

Build Status

汉城人工智能健身房的灵感来自OpenAI gym,并试图非常密切地遵循其api。

内容

基本知识

有两个术语需要理解:environmentagent

环境是一个代理可以与之交互的世界(模拟)。 代理人可以观察一个世界,并根据其决定采取行动。

seoulai-gym提供环境。 创建环境的示例:

importseoulai_gymasgymenv=gym.make("Checkers")

每个环境都有三种重要的方法:resetsteprender

reset(self) -> observation

将环境重置为默认状态并返回默认状态的observationobservation数据结构取决于环境,并分别针对每个环境进行描述。

step(self, agent, action) -> observation, reward, done, info

在最后由resetstep观察到的环境中,代表agent执行action。 一个action可以在不同的环境中有所不同,但是step方法的返回值总是相同的。 当在当前步骤或之前的一些步骤中所做的操作为代理带来了积极的结果(例如赢得一个游戏)时,将reward给予代理。 info是包含有关已执行的action的额外信息的字典。

render(self) -> None

在屏幕上显示游戏状态。

安装

安装seoulai-gym有两种方法。

pip3

开发人员创建代理的推荐方法是使用pip3安装seoulai-gym

pip3 install seoulai-gym

源代码

您还可以从源代码克隆并安装seoulai-gym。 这个选项是用于开发新环境或修改现有环境的开发人员。

git clone https://github.com/seoulai/gym.git
cd gym
pip3 install -e .

支持的系统

seoulai-gym要求至少有python 3.6,并且在arch linux、macos high sierra和windows 10上进行了测试。

环境

目前提供了Checkers,[强大](https://en.wikipedia.org/wiki/Mighty_(card_game))的环境模拟游戏和市场。

  • 跳棋

    importseoulai_gymasgymenv=gym.make("Checkers")env.reset()env.render()
  • 强大的

    importseoulai_gymasgymfromseoulai_gym.envs.mighty.agent.RandomAgentimportRandomAgentenv=gym.make("Mighty")players=[RandomAgent("Agent 1",0),RandomAgent("Agent 2",1),RandomAgent("Agent 3",2),RandomAgent("Agent 4",3),RandomAgent("Agent 5",4)]obs=env.reset()obs["game"].players=[players[0]._name,players[1]._name,players[2]._name,players[3]._name,players[4]._name,]env.render()
  • 市场

    importseoulai_gymasgymfromseoulai_gym.envs.traders.agentsimportRandomAgentBuffett# make enviromentenv=gym.make("Market")# select exchangeenv.select("upbit")init_cash=100000000# KRWa1=RandomAgentBuffett("Buffett",init_cash)current_agent=a1env.reset()env.render()

示例

测试

所有测试都是使用pytest编写的。 您可以通过以下途径运行它们:

pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我是否需要构造一个带有*非final*但不可变字段的不可变类?   java如何使用jaxb读取属性?   java为什么不打印空值以外的任何内容?   java Struts2如何在不使用struts的情况下重定向到操作。xml?   java方法参数未在其实现中使用   在Java中更改终端内部的变量   Spring中的java依赖项注入失败   java如何使用getAttribute Selenium防止获取重复的HREF   优先级队列的java顺序不符合预期   java如何使用Spring TaskExecutor在应用程序的所有请求中使用单个任务池   java Firebase RecyclerView不会从数据库中检索项目并将其显示在屏幕上。屏幕是空的   java将YUV_420_888转换为字节数组   spring停止使用Java缓存文件   java在执行maven clean安装时,我在eclipse智能家居中遇到了这种错误   stream Java=下载缓冲区未满?冲洗/缓冲是如何工作的?   查询SQL server时重置java JDBC连接   java如何避免在两个函数中使用相同的逻辑。   转换java。lang.Boolean到Scala Boolean