Web Analytics

pokemonred_puffer

⭐ 182 stars French by drubinstein

Pokemon Red (Édition RL)

Tests

Ce dépôt est conçu comme une bibliothèque à utiliser pour le développement de Pokemon Red RL. Il contient quelques fonctions pratiques qui ne devraient pas être utilisées dans un cadre de bibliothèque et devraient être forkées. À l'avenir, ces fonctions pratiques seront migrées pour qu'aucun fork ne soit nécessaire.

Démarrage rapide

Installation

Pour installer la bibliothèque, vous pouvez soit

Par exemple,

pip3 install -e . 

Exécution

Ci-dessous les commandes qui utilisent des arguments par défaut dans certains cas. Veuillez exécuter python3 -m pokemonred_puffer.train --help si vous ne savez pas comment utiliser les actions en ligne de commande associées à ce dépôt. Certaines commandes n'ont peut-être pas été testées récemment, veuillez donc créer une issue si vous en avez une.

Après l'installation, vous pouvez commencer l'entraînement en exécutant :

# Run before training to test what num_envs value you should use
python3 -m pokemonred_puffer.train autotune

Default

python3 -m pokemonred_puffer.train train

Balayages d'hyperparamètres multinœuds (en cours)

Si vous souhaitez effectuer des balayages d'hyperparamètres, vous pouvez le faire en installant les packages associés et en lançant deux commandes :

pip3 install -e '.[sweep]'
python3 -m pokemonred_puffer.sweep launch-sweep
python3 -m pokemonred_puffer.sweep launch-agent 

L’identifiant du balayage sera affiché lors du lancement du balayage. Pour reprendre un balayage, vous pouvez relancer votre balayage avec

python3 -m pokemonred_puffer.sweep launch-sweep --sweep-id 

Les balayages peuvent être configurés avec une configuration de balayage (par défaut sweep-config.yaml) et une configuration de base (par défaut config.yaml). Le balayage des hyperparamètres définit des bornes à l'aide de la configuration de balayage et centre les hyperparamètres sur les paramètres de la configuration de base. Pour en savoir plus sur l'algorithme des hyperparamètres, vous pouvez visiter le dépôt CARBS d'Imbue.

N.B. Actuellement, les balayages sur un seul nœud ne sont pas pris en charge. Si cette fonctionnalité est souhaitée, veuillez créer une issue.

Modification pour l'entraînement

Vous avez un run en cours, mais vous voulez le modifier, que faire ?

Vous avez plusieurs options :

Débogage

Si vous voulez tester vos modifications, vous pouvez exécuter

python3 -m pokemonred_puffer.train --config config.yaml --debug

En cas d'urgence, il est conseillé de retirer les appels à la fonction send_input dans environment.py afin de pouvoir tester les récompenses selon votre propre rythme et non celui du modèle.

Structure du Répertoire

Ce dépôt est destiné à être utilisé éventuellement comme une bibliothèque. Tous les fichiers source doivent être sous le répertoire pokemonred_puffer. Si vous souhaitez ajouter un module avec un __main__, n’hésitez pas, mais sous le répertoire pokemonred_puffer. Par la suite, vous devriez pouvoir exécuter votre main avec python3 -m pokemonred_puffer.

Dans le répertoire pokemonred_puffer, on trouve les fichiers et répertoires suivants :

Faire des Modifications

Pour des modifications simples, vous pouvez mettre à jour config.yaml directement. config.yaml a quelques règles importantes. Pour wrappers, rewards et policies, le wrapper, la récompense ou la politique _doit_ être indexé par module_name.class_name. Ces sections peuvent contenir plusieurs types de wrappers, rewards ou policies. La structure générale est étiquette : arguments pour la classe. Ceci est en place jusqu’à ce qu’une meilleure méthode avec moins d’indirections soit trouvée.

Ajouter des Wrappers

Pour ajouter des wrappers, ajoutez une nouvelle classe héritant de gym.Wrapper dans le répertoire wrappers. Puis mettez à jour la section wrappers de config.yaml. Les wrappers enveloppent l’environnement de base dans l’ordre, de haut en bas. La liste des wrappers n’est _pas_ indexée par le chemin de classe. C’est un nom unique qui distingue la collection de wrappers.

Ajouter des Récompenses

Pour ajouter des récompenses, ajoutez une nouvelle classe dans le répertoire rewards. Puis mettez à jour la section rewards de config.yaml. Une section de récompenses est indexée par le chemin de classe.

Ajouter des Politiques

Pour ajouter des politiques, ajoutez une nouvelle classe dans le répertoire policies. Puis mettez à jour la section policies de config.yaml. Une section de politique est indexée par le chemin de classe. Il est supposé qu’une politique récurrente vivra dans le même module que la politique qu’elle enveloppe.

Développement

Ce dépôt utilise pre-commit pour appliquer le formatage et le linting. Pour le développement, veuillez installer ce dépôt avec :

pip3 install -e '.[dev]'
pre-commit install
Pour toute modification, veuillez soumettre une PR.

Auteurs

David Rubinstein, Keelan Donovan, Daniel Addis, Kyoung Whan Choe, Joseph Suarez, Peter Whidden

Graphique de l'historique des étoiles

--- Tranlated By Open Ai Tx | Last indexed: 2026-02-26 ---