如何让Python智能体进行观察?

我正在尝试创建一个简单的Python智能体,能够在游戏中检测转弯并相应地向左或向右转。但是,我不清楚如何让智能体观察屏幕,以及如何将智能体整合进我的代码中。

我对机器学习和gym还很陌生。我下面提供了一个使用gym的基本布局,

import gym
import universe
env = gym.make('flashgames.NeonRace-v0')
env.configure(remotes=1)
observation_n = env.reset()
while True:
    action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]
    #在这里添加你的智能体
    observation_n, reward_n, done_n, info = env.step(action_n)
    env.render()

下面是智能体的布局,

def getAgent():
   """守护进程搜索此可调用函数以创建新的智能体"""
   return MyAgent()
class MyAgent(object):
    def __init__(self):
       """标准对象初始化"""
       self.done = False
    def run(self, messaging, args):
       """当智能体开始运行时由守护进程调用"""
       while not self.done:
           pass
    def stop(self):
       """当线程被请求停止时由守护进程调用"""
       self.done = True

我开始实施代码,但每当涉及到观察屏幕时,我就会卡住。


回答:

你已经在env.reset()和env.step(action_n)的返回值中得到了观察数据。智能体应该接受这些观察数据,并使用某种监督学习方法(例如深度神经网络)从观察中预测动作。这是不是你所缺少的部分?

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注