我正在用pygad用python语言编写一个遗传算法(GA),但我一直收到这个错误:
TypeError:无法将序列乘以‘GA’类型的非整型
以下是我的全部代码:
import pygad
import numpy
print(pygad.__version__)
inputs = [0.4,1,0,7,8,1,2,3,4,5,6,7,8,9,0,12,23,34,45,5667,67,78,95678,456,23,234,456,9,0,9,54,213,]
desired_output = 32
def fitness_func(solution, solution_idx, ga_instance):
output = numpy.sum(solution*inputs) # error here
fitness = 1.0 / (numpy.abs(output - desired_output) + 0.000001)
return fitness
ga_instance = pygad.GA(num_generations=100,
sol_per_pop=10,
num_genes=len(inputs),
num_parents_mating=2,
fitness_func=fitness_func,
mutation_type="random",
mutation_probability=0.6)
ga_instance.run()
ga_instance.plot_fitness()
*输入只是一串随机数字
我使用的是pygad 3.0.0和python3.11.3
我曾try 过这样做:
output = numpy.sum(int(solution)*inputs)
也只是将解决方案参数替换为预期输出(32),但当我这样做时,AI不会做任何事情.