问题描述
我正在使用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 (将#修改为@)