0

Ich implementiere gerade einen Programmklassifizierer für meine Kursarbeit. Mein Dozent bittet mich, den Algorithmus "Evolving ANN" zu verwenden. Also habe ich ein Paket namens NEAT (Neuro Evolution of Augmenting Topologies) gefunden. Ich habe 10 Eingänge und 7 Ausgänge, dann ändere ich einfach die Quelle aus ihrer Dokumentation.NEAT mit mehrfachem Ausgang

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) 

Ich hatte die Konfigurationsdatei auch geändert, so dass das Programm 10 Eingänge und 7 Ausgänge hat. Aber wenn ich versuche, um den Code auszuführen, gibt es mir

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

Fehler Was ich tun soll? Danke

+0

Gibt es einen bestimmten Grund, NEAT gewählt zu haben und was hat Ihr Professor mit dem "Evolving ANN" -Algorithmus gemeint, würde ein einfaches Mehrschicht-Perzeptron in diese Kategorie fallen? – Ironluca

+0

Eigentlich habe ich keinen Grund NEAT zu wählen, 'Evolving ANN' Ich denke es genauso wie Neuro-Evolution. Referenzen für ordentlich http://neat-python.readthedocs.io/en/latest/index.html –

Antwort

0

Soweit ich feststellen kann, ist der Fehler nicht in Ihrem Code, sondern in der Bibliothek selbst. Benutze einfach einen anderen. This one sieht vielversprechend für mich aus.