NEAT с несколькими выходами

В настоящее время я внедряю классификатор программ для своей курсовой работы. Мой лектор попросил меня использовать алгоритм "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()

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


person Ilham Muhammad    schedule 14.12.2016    source источник
comment
Есть ли какая-то конкретная причина для выбора NEAT и что ваш профессор имел в виду под алгоритмом «Развитие ИНС», подпадал бы под эту категорию простой многослойный персептрон?   -  person Ironluca    schedule 14.12.2016
comment
На самом деле у меня нет причин выбирать NEAT, я думаю, что «Evolving ANN» это то же самое, что и нейроэволюция. Ссылки на аккуратные neat-python.readthedocs.io/en/latest/index.html   -  person Ilham Muhammad    schedule 14.12.2016


Ответы (1)


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

person PLEXATIC    schedule 13.06.2017