В настоящее время я реализую классификатор программ для своей курсовой работы. Мой лектор попросил меня использовать алгоритм «Развивающийся 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()
Что я должен делать? Спасибо
Есть ли какая-то конкретная причина, чтобы выбрать NEAT и что ваш профессор имел в виду под алгоритмом «Развивающийся ANN», может ли быть простой многослойный персептрон этой категории? – Ironluca
На самом деле у меня нет причин выбирать NEAT, «Evolution ANN». Я думаю, что это так же, как нейроэволюция. Ссылки для опрятных http://neat-python.readthedocs.io/en/latest/index.html –