xor_outputs = [(0.0,), (1.0), (1.0), (0.0)]
Первым элементом в этом списке является кортеж с одним float из-за запятой. Тем не менее, остальные из них являются float.
Тебе не нужны здесь кортежи. Вы можете просто сделать
xor_outputs = [0.0, 1.0, 1.0, 0.0]
Затем изменить output[0]
на output
:
genome.fitness -= (output - xo[0])**2
Обратите внимание, что отслеживание ошибок, подобных этой, является большой частью работы программиста. Я предлагаю вам прочитать эту статью , чтобы получить множество советов, которые помогут вам отследить подобные проблемы. Эти инструменты не всегда решают проблему, но они могут помочь вам найти причину.