Ich habe mit NEAT eine einfache Spiel-KI erstellt. Ich habe jedoch ein Problem entdeckt, bei dem sich das Spielfenster beim Übergang von Generation 0 zu Generation 1 einfach öffnete und schloss, und in Wirklichkeit wiederholte es sich immer wieder mit Generation 0, also habe ich gpt gebeten, es zu ändern. Als ich den geänderten Code ausführte, erhielt ich die folgende Meldung:
eunwoocho@Eunwoos-MacBook-Pro python % /usr/local/bin/python3 "/Users/eunwoocho/Documents/Python/import pygame.py"
pygame 2.5.2 (SDL 2.28.3, Python 3.12.2)
Hello from the pygame community. https://www.pygame.org/contribute.html
****** Running generation 0 ******
Population's average fitness: 4.55500 stdev: 8.71705
Best fitness: 68.00000 - size: (10, 36) - species 69 - id 69
Average adjusted fitness: 0.067
Mean genetic distance 3.545, standard deviation 0.244
Population of 402 members in 200 species:
ID age size fitness adj fit stag
==== === ==== ======= ======= ====
1 0 2 1.0 0.015 0
.....omit....
200 0 2 0.0 0.000 0
Total extinctions: 0
Generation time: 2.484 sec
****** Running generation 1 ******
Traceback (most recent call last):
File "/Users/eunwoocho/Documents/Python/import pygame.py", line 129, in
run(config_path, 50)
File "/Users/eunwoocho/Documents/Python/import pygame.py", line 121, in run
winner = p.run(lambda genomes, config: main(genomes, config, p.generation, target_generations), target_generations)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/neat/population.py", line 89, in run
fitness_function(list(iteritems(self.population)), self.config)
File "/Users/eunwoocho/Documents/Python/import pygame.py", line 121, in
winner = p.run(lambda genomes, config: main(genomes, config, p.generation, target_generations), target_generations)
File "/Users/eunwoocho/Documents/Python/import pygame.py", line 57, in main
net = neat.nn.FeedForwardNetwork.create(g, config)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/neat/nn/feed_forward.py", line 51, in create
activation_function = config.genome_config.activation_defs.get(ng.activation)
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/neat/activations.py", line 128, in get
raise InvalidActivationFunction("No such activation function: {0!r}".format(name))
neat.activations.InvalidActivationFunction: No such activation function: 'sum'
Das Spiel ist von Generation 0 auf Generation 1 umgestiegen, es wurde jedoch eine Fehlermeldung angezeigt
"No such activation function: 'sum'"
ist aufgetreten. Allerdings habe ich „sum“ noch nie im config-feedfoword oder im Spielcode verwendet, daher frage ich mich, warum dieser Fehler auftritt.
Und das ist der von GPT und geänderte Code config-feedforward.txt-Datei:
https://drive.google.com/drive/folders/ ... drive_link
Um das Problem zu lösen, habe ich nach Code gesucht, der sum und Folgendes enthält GPTs Hinweis, dass das Element „activation_default“ das Problem war, ich habe es von „activation_default = relu“ in „sigmoid“ geändert, aber der „Summen“-Fehler erscheint immer noch. Das wirklich Frustrierende daran ist, dass ich das Wort „Summe“ überhaupt nicht verwendet habe. Bitte helfen Sie diesem leidenden jungen Entwickler.
Wie löse ich den Fehler „Keine solche Aktivierungsfunktion: ‚Summe‘“ in Python NEAT? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post