Python 2.7 PyBrain QTable(ActionValueTable)未更改

Python 2.7 PyBrain QTable(ActionValueTable)未更改,python-2.7,machine-learning,python-2.x,pybrain,Python 2.7,Machine Learning,Python 2.x,Pybrain,我关注了一篇博客文章(),作者用PyBrain编写了一个程序来学习如何玩21点。他概述说,他正在使用一个用零初始化的Q表。最后,在节目进行了300场比赛后,他展示了自己的成绩(最终Q表) 我的问题是,当我自己运行他的代码时,完全复制,Q表不会更新。即使在1000只手之后,它仍然永远是一张只有零的桌子 下面是他的代码的我的版本,在其中我只为Q表添加了一个打印语句 from blackjacktask import BlackjackTask from blackjackenv import Bla

我关注了一篇博客文章(),作者用PyBrain编写了一个程序来学习如何玩21点。他概述说,他正在使用一个用零初始化的Q表。最后,在节目进行了300场比赛后,他展示了自己的成绩(最终Q表)

我的问题是,当我自己运行他的代码时,完全复制,Q表不会更新。即使在1000只手之后,它仍然永远是一张只有零的桌子

下面是他的代码的我的版本,在其中我只为Q表添加了一个打印语句

from blackjacktask import BlackjackTask
from blackjackenv import BlackjackEnv
from pybrain.rl.learners.valuebased import ActionValueTable
from pybrain.rl.agents import LearningAgent
from pybrain.rl.learners import Q
from pybrain.rl.experiments import Experiment
from pybrain.rl.explorers import EpsilonGreedyExplorer    
av_table = ActionValueTable(21, 2)
av_table.initialize(0.)
learner = Q(0.5, 0.0)
learner._setExplorer(EpsilonGreedyExplorer(0.0))
agent = LearningAgent(av_table, learner)
env = BlackjackEnv()
task = BlackjackTask(env)
experiment = Experiment(task, agent)
c=0
while True:
    c+=1
    print "Hand "+str(c)+"."
    experiment.doInteractions(1)
    agent.learn()
    print av_table.params.reshape(21,2)
    agent.reset()
除了添加print语句外,我还将
blackjacktask
blackjackenv
的文件位置更改到了学习程序所在的同一文件夹中,只是因为它在
pybrain
文件夹中时拒绝导入。我的程序没有返回导入错误,模块也没有,所以我怀疑这是问题所在

问题可能出在博客海报的模块中,可以在他的帖子()中找到