← Вернуться к списку

Запуск 2 сетей NEAT на одних и тех же наблюдениях

Краткое содержание

Я экспериментировал с neat-python. Я написал программу, применяющую neat, для игры в пинбол на Atari 2600. Код этой программы можно найти в файле test2.py здесь. Теперь, основываясь на этом, я хотел бы сделать то же самое, но для двухпользовательской игры. Я уже настроил окружение для двухпользовательской игры, используя PONG с OpenAI Retro. То, что мне неясно, как реализовать одновременное выполнение 2 сетей на одном и том же наблюдении. Способ работы neat-python заключается в получении наблюдения от одной функции, которая проходит по каждому геному и запускает окружение. Как бы вы создали 2 функции eval_genome, которые могли бы принимать одно и то же наблюдение в режиме реального времени? Это означает, что они обучаются на основе одних и тех же изображений и окружений. Помогите?

Полный текст

Задайте вопрос

Задано 6 лет, 10 месяцев назад Изменено сегодня Просмотрено 378 раз

Задано 6 лет, 10 месяцев назад

2 $\begingroup$ Я экспериментировал с neat-python. Я написал программу, применяющую NEAT для игры в пинбол на Atari 2600. Код этой программы можно найти в файле test2.py здесь. Теперь, основываясь на этом, я хотел бы сделать то же самое, но для двух игроков. У меня уже настроена среда для игры с двумя игроками, которая использует PONG с помощью OpenAI Retro. То, что я не понимаю, это как запустить 2 сети одновременно на одном и том же наблюдении. То, как работает neat-python, заключается в том, что вы получаете наблюдение из одной функции, которая проходит через каждый геном и запускает среду. Как бы вы создали 2 функции eval_genome, которые могли бы принимать одно и то же наблюдение в режиме реального времени? Это означает, что они будут обучаться на одних и тех же изображениях и средах. Помогите? deep-learning reinforcement-learning python neat open-ai Share Improve this question Follow asked Mar 20, 2019 at 13:47 niallmandal 221 2 2 silver badges 6 6 bronze badges $\endgroup$ 3 1 $\begingroup$ Я не уверен, как это сделать, так как я раньше не работал с neat-python, но я честно говоря любопытен, почему вы хотите это сделать? Чтобы сравнить структуру сетей или что-то еще? $\endgroup$ Jaden Travnik – Jaden Travnik 2019-03-20 14:01:03 +00:00 Commented Mar 20, 2019 at 14:01 $\begingroup$ Я планирую изучить взаимодействие между агентами, обученными вместе. Хочу ли я, чтобы они могли развивать кооперативное поведение. Эта проблема с NEAT довольно раздражает... $\endgroup$ niallmandal – niallmandal 2019-03-20 16:41:48 +00:00 Commented Mar 20, 2019 at 16:41 $\begingroup$ Кто-нибудь знает, как это решить? $\endgroup$ niallmandal – niallmandal 2019-03-21 16:19:44 +00:00 Commented Mar 21, 2019 at 16:19 Add a comment | 2 Answers 2 Sorted by: Reset to default Highest score (default) Date modified (newest first) Date created (oldest first) 0 $\begingroup$ Я не знаком с neat-python, но я реализовал NEAT для выполнения задач OpenAI. Если есть класс для инициализации популяции, вы можете просто использовать его и создать два объекта, такие как population1 и population2, и вызывать их в одном цикле. Share Improve this answer Follow answered Aug 13, 2019 at 4:21 Terry T. 339 2 2 silver badges 8 8 bronze badges $\endgroup$ Add a comment | 0 $\begingroup$ Ну, если вы хотите просто обучить genomeN против genomeN-1, то вам нужно перебирать геномы с помощью индексации и начинать с 1, чтобы вы всегда могли делать genome1 = genomes[ix-1] и genome2 = genomes[ix], а затем изменять свой код оценки подбором, чтобы запускать их одновременно и применять к ним функцию оценки. Также, возможно, вам нужно перебирать попарно, чтобы вы оценивали каждую сеть только один раз. Share Improve this answer Follow edited Feb 10, 2020 at 15:23 answered Sep 12, 2019 at 22:05 nickw 347 1 1 silver badge 7 7 bronze badges $\endgroup$ Add a comment | You must log in to answer this question. Start asking to get answers Find the answer to your question by asking. Ask question Explore related questions deep-learning reinforcement-learning python neat open-ai See similar questions with these tags.