Thanks to visit codestin.com
Credit goes to github.com

Skip to content

dabrelity1/reinforcement-learning

RL (DQN)

Treino de uma IA com DQN.

Estrutura

  • env/
    • sim_env.py: ambiente de simulação para treino rápido.
    • fishing_env.py: ambiente real via captura de ecrã e controlo do rato.
    • chet_sim_env.py: simulador compatível com o OpenCV, ideal para ver a aprendizagem.
  • agents/
    • dqn.py: implementação do DQN (rede, treino, target network).
    • replay_buffer.py: buffer de replay com experiências e frame stacking.
  • utils/
    • preprocessing.py: recorte, grayscale, resize para 84×84 e normalização.
    • vision.py: deteção de barras no ecrã real e cálculo de overlap.
    • screen.py: captura de ecrã (mss) e controlo do rato (pyautogui).
    • logger.py: TensorBoard logging e checkpoint helpers.
    • schedules.py: agendas (epsilon, lr) e curriculum.
  • train.py: script de treino (simulação ou real), com frame skip e logging.
  • evaluate.py: avaliação/teste de um modelo treinado.

Requisitos

Windows 10/11 com permissões para captura de ecrã e controlo do rato.

Python 3.10+.

Instalar dependências:

python -m venv .venv
. .venv/Scripts/Activate.ps1
pip install --upgrade pip
pip install -r requirements.txt

Se o pyautogui pedir dependências extra, confirme permissões de Acessibilidade/Security no Windows.

Como correr (simulação)

Treino num ambiente local:

python train.py --env sim --total-steps 200000 --run-name sim-baseline

Renderizar ocasionalmente:

python train.py --env sim --render-every 2000

Simulador:

python train.py --env chet-sim --total-steps 200000 --render-every 1000 --run-name chet-sim

Como correr

Exemplo:

python train.py --env real --capture-rect 800 400 300 300 --total-steps 300000 --frame-skip 4 --run-name real-dqn

Notas:

  • Usar --safe-mode para limitar velocidade e amplitude do rato enquanto o bot afina a região.

Checkpoints e TensorBoard

Checkpoints são gravados em models/ e os logs do TensorBoard em runs/.

Abrir TensorBoard:

tensorboard --logdir runs

Avaliar último checkpoint rapidamente:

python evaluate.py --env chet-sim --model_path models/dqn_latest.pt --episodes 5 --render True

Presets e modos avançados

Para ativar Rainbow (C51 + PER + n-step + Noisy + Dueling + AMP) num só comando:

python train.py --config presets/chet_sim_rainbow_fast.json --run-name chet-sim-rainbow

Ou experimentar QR-DQN:

python train.py --config presets/chet_sim_qr_fast.json --run-name chet-sim-qr

Opções úteis (todas disponíveis via --help):

  • --num-envs 4 paraleliza a IA (AsyncVectorEnv)
  • --async-learner ativa um thread de aprendizagem em paralelo
  • --c51 ou --qr-dqn (exclusivos) para distribuição de valores
  • --n-step 3 para returns de 3 passos
  • --prioritized (PER), com --per-alpha e --per-beta-*
  • --amp para mixed precision (mais rápido na GPU)
  • --replay-memmap-dir replay_memmap grava frames no disco e reduz RAM
  • --log-video-every 25000 e --video-length 600 para vídeos curtos

Recomeçar um treino a partir do último checkpoint:

python train.py --resume-from models/dqn_latest.pt --config presets/chet_sim_rainbow_fast.json

Docker (opcional)

O projeto inclui um Dockerfile (CUDA) para treino containerizado. Ajuste volumes e acesso à GPU conforme o seu host.

Experimentos (sweeps)

Usar sweep.py para varrer grelhas de hiperparâmetros em série.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages