具有多个输出的 NEAT

NEAT with multiple output

我目前正在为我的课程作业实施程序分类器。 我的讲师让我使用 "Evolving ANN" 算法。 所以我找到了一个名为 NEAT (Neuro Evolution of Augmenting Topologies) 的包。 我有 10 个输入和 7 个输出,然后我只是从它的文档中修改源代码。

def eval_fitness(genomes):
for g in genomes:
    net = nn.create_feed_forward_phenotype(g)

    mse = 0

    for inputs, expected in zip(alldata, label):
        output = net.serial_activate(inputs)
        output = np.clip(output, -1, 1)
        mse += (output - expected) ** 2

    g.fitness = 1 - (mse/44000) #44000 is the number of samples
    print(g.fitness)

我也更改了配置文件,所以程序有 10 个输入和 7 个输出。 但是当我尝试 运行 代码时,它给了我错误

Traceback (most recent call last):
  File "/home/ilhammaziz/PycharmProjects/tuproSC2/eANN.py", line 40, in <module>
    pop.run(eval_fitness, 10)
  File "/home/ilhammaziz/.local/lib/python3.5/site-packages/neat/population.py", line 190, in run
    best = max(population)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我该怎么办? 谢谢

据我所知,错误不在您的代码中,而在它自己的库中。换一个就好了。 This one 我觉得很有希望。