微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

激活函数NEAT中的self.values [i]为无

如何解决激活函数NEAT中的self.values [i]为无

我正在使用NEAT进行项目,但是我遇到了问题。似乎在这代码中: (位于FeedForwardNetwork类的neat / nn / Feed_forward.py文件中)

 def activate(self,inputs):
    if len(self.input_nodes) != len(inputs):
        raise RuntimeError("Expected {0:n} inputs,got {1:n}".format(len(self.input_nodes),len(inputs)))

    for k,v in zip(self.input_nodes,inputs):
        self.values[k] = v

    for node,act_func,agg_func,bias,response,links in self.node_evals:
        node_inputs = []
        for i,w in links:
            #print(self.values[i])
            if self.values[i]!= None:          #prints 'None' b4 error
                node_inputs.append(self.values[i] * w) #HERE 
        s = agg_func(node_inputs)
        self.values[node] = act_func(bias + response * s)

    return [self.values[i] for i in self.output_nodes]

错误消息:

File "d:/Projects/PythonProjects/PrivateGithub/Snake_with_NEAT/main.py",line 273,in <module>
run(config_path)

File "d:/Projects/PythonProjects/PrivateGithub/Snake_with_NEAT/main.py",line 268,in run
    winner = p.run(eval_g,100000)
  File "C:\Users\plate\anaconda3\envs\tensor\lib\site-packages\neat\population.py",line 89,in run
    fitness_function(list(iteritems(self.population)),self.config)
  File "d:/Projects/PythonProjects/PrivateGithub/Snake_with_NEAT/main.py",line 198,in eval_g
    apples[i].get_pos_y()])

File "C:\Users\plate\anaconda3\envs\tensor\lib\site-packages\neat\nn\Feed_forward.py",line 24,in activate
    node_inputs.append(self.values[i] * w)
TypeError: unsupported operand type(s) for *: 'nonetype' and 'float'

问题出在“ #HERE”行上,我“已修复” 通过在上面的行中添加“ if”来添加它,但我不认为这是一个很好的解决方案。 为什么self.values [i]是None?我检查了输入内容,看起来不错,但是“ if”上方的打印功能返回“无”。此错误会在大约2-5代后出现,有时甚至是立即发生。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。