Treino de uma IA com DQN.
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.
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.txtSe o pyautogui pedir dependências extra, confirme permissões de Acessibilidade/Security no Windows.
Treino num ambiente local:
python train.py --env sim --total-steps 200000 --run-name sim-baselineRenderizar ocasionalmente:
python train.py --env sim --render-every 2000Simulador:
python train.py --env chet-sim --total-steps 200000 --render-every 1000 --run-name chet-simExemplo:
python train.py --env real --capture-rect 800 400 300 300 --total-steps 300000 --frame-skip 4 --run-name real-dqnNotas:
- Usar
--safe-modepara limitar velocidade e amplitude do rato enquanto o bot afina a região.
Checkpoints são gravados em models/ e os logs do TensorBoard em runs/.
Abrir TensorBoard:
tensorboard --logdir runsAvaliar último checkpoint rapidamente:
python evaluate.py --env chet-sim --model_path models/dqn_latest.pt --episodes 5 --render TruePara 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-rainbowOu experimentar QR-DQN:
python train.py --config presets/chet_sim_qr_fast.json --run-name chet-sim-qrOpções úteis (todas disponíveis via --help):
--num-envs 4paraleliza a IA (AsyncVectorEnv)--async-learnerativa um thread de aprendizagem em paralelo--c51ou--qr-dqn(exclusivos) para distribuição de valores--n-step 3para returns de 3 passos--prioritized(PER), com--per-alphae--per-beta-*--amppara mixed precision (mais rápido na GPU)--replay-memmap-dir replay_memmapgrava frames no disco e reduz RAM--log-video-every 25000e--video-length 600para 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.jsonO projeto inclui um Dockerfile (CUDA) para treino containerizado. Ajuste volumes e acesso à GPU conforme o seu host.
Usar sweep.py para varrer grelhas de hiperparâmetros em série.