为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“'float'对象不可下标”

如何修复“'float'对象不可下标”

尚方宝剑之说 2022-07-26 10:12:45
您好,我的代码有问题: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

请注意,跟踪这样的错误是计算机程序员的很大一部分。我建议您阅读这篇文章,了解很多可以帮助您追踪此类问题的技巧。这些工具并不总能解决问题,但它们可以帮助您找到问题的原因。


查看完整回答
反对 回复 2022-07-26
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

我不知道您的任何值是什么,或者您的代码在做什么,但是 output 或 xo 都是浮点值,而不是您认为的数组值。



查看完整回答
反对 回复 2022-07-26
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信