小编mau*_*omi的帖子

从 Python 中的函数访问类变量

我正在使用 OOP 编写我的第一个 Python 游戏,但在访问类变量时遇到了一些问题。具体来说,我想从一个方法访问一个类变量。对于某些变量它有效,但对于特定的布尔变量它不起作用:

class Player(object):
    eaten = False

    def __init__(self):
          .....

def eat(Player):
    Player.eaten = True
Run Code Online (Sandbox Code Playgroud)

问题是,当函数被调用时,eated不会覆盖类中的变量。对于其他变量,它可以正确执行我想要的操作。

编辑:如果在类播放器的方法中,我print(self.eaten)eat()调用后添加,它仍然总是打印False

 class Player(object):
    eaten = False

    def move():
        print(self.eaten)

def eat(Player):
    Player.eaten = True
Run Code Online (Sandbox Code Playgroud)

谢谢!

python oop

2
推荐指数
1
解决办法
1万
查看次数

增强学习以获取连续的状态和动作空间

问题

我的目标是应用强化学习来预测物体在3D环境下处于已知力下的下一个状态(该方法将简化为监督学习,离线学习)。

我的方法的细节

当前状态是代表物体在环境中的位置(3维)和物体的速度(3维)的向量。起始位置以及起始速度在环境中被随机初始化。

动作是代表从状态t到状态t + 1的运动的向量。

奖励只是预测的下一个状态与实际的下一个状态(我已经有了目标位置)之间的欧几里得距离。

到目前为止,我做了什么?

我一直在寻找许多方法来做到这一点。深度确定性策略梯度适用于连续的操作空间,但就我而言,我也具有连续的状态空间。如果您对此方法感兴趣,请参考DeepMind上的原始文章:http//proceedings.mlr.press/v32/silver14.pdf

演员,评论家方法应该可行,但它通常是(或总是)应用于离散和低维状态空间。

Q-LearningDeep-Q Learning无法处理高维状态空间,因此即使离散化状态空间,我的配置也无法使用。

逆向强化学习(模仿学习的一个实例,具有行为克隆直接策略学习)可以在发现奖励功能比查找策略功能复杂时近似奖励功能。有趣的方法,但是我还没有看到任何实现,对于我来说,奖励功能非常简单。有没有可以解决我的配置问题的方法?

python artificial-intelligence machine-learning reinforcement-learning

1
推荐指数
1
解决办法
1133
查看次数