Web Analytics

pokemonred_puffer

⭐ 182 stars Spanish by drubinstein

Pokemon Red (Edición RL)

Tests

Este repositorio está diseñado como una biblioteca para ser utilizada en el desarrollo de Pokemon Red RL. Contiene algunas funciones de conveniencia que no deberían usarse en un entorno de biblioteca y deberían bifurcarse. En el futuro, esas funciones de conveniencia serán migradas para que no sea necesario bifurcar.

Inicio rápido

Instalación

Para instalar la biblioteca puedes

Por ejemplo,

pip3 install -e . 

Ejecución

A continuación se muestran comandos que usan argumentos predeterminados en algunos casos. Por favor, ejecute python3 -m pokemonred_puffer.train --help si no está seguro de cómo usar las acciones de línea de comandos asociadas con este repositorio. Algunos comandos pueden no haber sido probados recientemente, así que por favor cree un problema si tiene uno.

Después de la instalación puede comenzar el entrenamiento ejecutando:

# 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

Barridos de Hiperparámetros Multinodo (en progreso)

Si desea ejecutar barridos de hiperparámetros, puede hacerlo instalando los paquetes relacionados y lanzando dos comandos:

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

El ID del sweep se imprimirá al iniciar el sweep. Para reanudar un sweep, puedes relanzar tu sweep con

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

Las exploraciones pueden configurarse con una configuración de exploración (por defecto sweep-config.yaml) y una configuración base (por defecto config.yaml). La exploración de hiperparámetros establece límites usando la configuración de exploración y centra los hiperparámetros en los parámetros de la configuración base. Para aprender más sobre el algoritmo de hiperparámetros, puedes visitar el repositorio CARBS de Imbue.

N.B. Actualmente no se soportan exploraciones de un solo nodo. Si esta es una función deseada, por favor crea un issue.

Modificación para Entrenamiento

Entonces tienes una ejecución en marcha, pero quieres modificarla, ¿qué haces?

Tienes algunas opciones:

Depuración

Si quieres probar tus cambios puedes ejecutar

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

En casos de emergencia, se recomienda eliminar las llamadas a la función send_input de environment.py para que puedas probar las recompensas en tu propio horario y no en el del modelo.

Estructura del Directorio

Este repositorio está destinado a ser utilizado eventualmente como una biblioteca. Todos los archivos fuente deben estar bajo el directorio pokemonred_puffer. Si quieres agregar un módulo con un __main__, siéntete libre de hacerlo, pero bajo el directorio pokemonred_puffer. Después, deberías poder ejecutar tu main con python3 -m pokemonred_puffer.

Dentro del directorio pokemonred_puffer hay los siguientes archivos y directorios:

Realizar Cambios

Para cambios simples, puedes actualizar config.yaml directamente. config.yaml tiene algunas reglas importantes. Para wrappers, rewards y policies, el envoltorio, recompensa o política _debe_ estar claveado por module_name.class_name. Estas secciones pueden contener múltiples tipos de wrappers, rewards o policies. La estructura general es etiqueta : argumentos para la clase. Esto es hasta que se encuentre una mejor forma con menos indirectas.

Añadir Wrappers

Para añadir envoltorios, agrega una nueva clase que herede de gym.Wrapper en el directorio wrappers. Luego actualiza la sección wrappers de config.yaml. Los envoltorios envuelven el entorno base en orden, de arriba hacia abajo. La lista de envoltorios _no_ está claveada por la ruta de la clase. Es un nombre único que distingue la colección de envoltorios.

Añadir Recompensas

Para añadir recompensas, agrega una nueva clase en el directorio rewards. Luego actualiza la sección rewards de config.yaml. Una sección de recompensa está claveada por la ruta de la clase.

Añadir Políticas

Para añadir políticas, agrega una nueva clase en el directorio policies. Luego actualiza la sección policies de config.yaml. Una sección de política está claveada por la ruta de la clase. Se asume que una política recurrente vivirá en el mismo módulo que la política que envuelve.

Desarrollo

Este repositorio usa pre-commit para hacer cumplir el formato y linting. Para desarrollo, por favor instala este repositorio con:

pip3 install -e '.[dev]'
pre-commit install

Para cualquier cambio, por favor envíe un PR.

Autores

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

Gráfico de Historial de Estrellas

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