您好,我的代碼有問題: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條經驗 獲得超5個贊
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
提交
取消