如何解决激活函数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 举报,一经查实,本站将立刻删除。