您好,我的代码有问题:xor_inputs = [(0.0, 0.0), (0.0, 1.0), (1.0, 0.0), (1.0, 1.0)]xor_outputs = [(0.0,), (1.0), (1.0), (0.0)]def eval_genomes(genomes, config): for genomes_id, genome in genomes: genome.fitness = 4.0 net = neat.nn.FeedForwardNetwork.create(genome, config) for xi, xo in zip(xor_inputs, xor_outputs): output = net.activate(xi) genome.fitness -= (output[0] - xo[0])**2当我运行我的文件时,我有:" 基因组.fitness -= (输出[0] - xo[0])**2TypeError:'float'对象不可下标“你能帮助我吗 ?谢谢 !
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
xor_outputs = [(0.0,), (1.0), (1.0), (0.0)]
由于尾随逗号,此列表中的第一个元素是具有单个浮点数的元组。然而,其余的都是花车。
不过,您实际上并不需要元组。你可以做
xor_outputs = [0.0, 1.0, 1.0, 0.0]
然后更改output[0]
为output
:
genome.fitness -= (output - xo[0])**2
请注意,跟踪这样的错误是计算机程序员的很大一部分。我建议您阅读这篇文章,了解很多可以帮助您追踪此类问题的技巧。这些工具并不总能解决问题,但它们可以帮助您找到问题的原因。
添加回答
举报
0/150
提交
取消