PyBrain强化学习输入缓冲区

2024-09-29 19:26:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图设置PyBrain以进行强化学习,但当我第一次尝试执行某个操作时,仍然会出现相同的错误。module.py中的此行引发断言失败,因为我们使用的ActionValueTable(模块的子级)上的输入缓冲区设置不正确。在

 assert len(self.inputbuffer[self.offset]) == len(inpt)

其他人有没有经历过类似的问题,或者对如何解决这个问题有见解?在


Tags: 模块pyselflen错误assert断言offset
3条回答

我遇到了一个类似的问题-我运行pdb来检查indim和outdim,但它们都不正确(即,不是我们在环境文件中设置的值)

确保这些值是正确的,并请跟进任何进展。在

在自补偿我的问题是:

(49)activate()
-> self.inputbuffer[self.offset] = inpt
(Pdb) p self
<RecurrentNetwork 'RecurrentNetwork-13'>
(Pdb) p self.inputbuffer
array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]])
(Pdb) p inpt
array([ 0.36663106,  0.10664821, -0.09483858,  0.24661628, -0.33891044,
       -0.16277863, -0.46995505,  0.43191341,  0.46647206, -0.14306874])
(Pdb) p self.offset
3825
(Pdb) 

编辑:固定

^{pr2}$

背景:我在用pybrain的内置GA训练了这个网络的结果后,把它打印出来。在

我以前用过递归网络,没有问题(即使是相同的数据集),所以我很好奇是什么地方出了问题。我还没有深入研究GA(或其他我不知道的事情)对网络的影响,但不管在进入一个涉及net.激活()修复了它,现在我得到了正确的激活(确保在循环之前将其设置为0,而不是在循环期间)。在

可能是因为我把它训练成独立的数据,而它仍然认为这些数据是相关的?在

祝你好运!在

我也有同样的问题。我换了net.激活(tstdata)与net.activateOnDataset(tstdata)这对我很有效。这也是他们在示例代码中使用的函数。在

相关问题 更多 >

    热门问题