0

В настоящее время я реализую классификатор программ для своей курсовой работы. Мой лектор попросил меня использовать алгоритм «Развивающийся ANN». Итак, я нашел пакет под названием NEAT (Neuro Evolution of Augmenting Topologies). У меня есть 10 входов и 7 выходов, затем я просто модифицирую источник из его документации.NEAT с несколькими выходами

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()

Что я должен делать? Спасибо

+0

Есть ли какая-то конкретная причина, чтобы выбрать NEAT и что ваш профессор имел в виду под алгоритмом «Развивающийся ANN», может ли быть простой многослойный персептрон этой категории? – Ironluca

+0

На самом деле у меня нет причин выбирать NEAT, «Evolution ANN». Я думаю, что это так же, как нейроэволюция. Ссылки для опрятных http://neat-python.readthedocs.io/en/latest/index.html –

ответ

0

Насколько я могу сказать, ошибка не в вашем коде, а в библиотеке. Просто используйте другой. This one выглядит многообещающе для меня.