Projeto Físico
Instalação
Para realizar o treino é necessário instalar a versão 0.2 do mlagents. Isto é feito através do seguinte comando:
# Instala as bibliotecas necessárias
sudo apt update
sudo apt install cmake
pip install gym ray[rllib] mlagents==0.20 torch
Baixando os binários
Para executar o projeto é necessário baixar os binários dos agentes, para isto usaremos o gdown
pip install gdown
Em seguida, utiliza-se o gdown para baixar do google drive os arquivos necessários:
gdown --id 15ocBljC4BKiquJfQ3nCg49ZEoqyVZUm1 --output CarAgentRL.tar.gz
tar xf CarAgentRL.tar.gz
Treinamento
Para treinar os agentes basta executar o arquivo train_rllib.py
da seguinte forma:
# Roda o treinamento
python src/train_rllib.py -f CarAgentRL/CarAgentRL
Flags
Algumas flags podem ser passadas para o script de treino, elas são:
Flag | Função | Tipo | Default |
---|---|---|---|
--file_name, -f | Indica local e nome do arquivo de agentes a ser treinado | String | Nada |
--log_level, -l | Define a forma como o treino vai gerar um registro | String (DEBUG, INFO, WARN, ERROR) | WARN |
--agents | Número total de agentes a serem executados | Int | 256 |
--workers | Número total de CPU's a serem utilizadas no treino | Int | [Número de CPU's] - 1 |
--gpus | Número de GPU's a serem utilizadas no treino | Int | Todas as disponíveis |
--max_train_iters | Número de iterações de treino a serem executadas | Int | 512 |
--time_scale | Quão rápido o jogo será executado | Float | 1000 |
--framework | Escolhe qual framework utilizar entre Torch e TensorFlow | String (torch, tf) | torch |
Visualização
Existem atualmente duas formas de visualizar os resultados do treinamento: TensorBoard e plot_results.py.
Tensorboard
Para utilizar essa ferramenta, é necessário possuir a biblioteca tensorflow instalada. Em seguida, execute o seguinte comando para executá-la e visualizar o treinamento:
tensorboard --log-dir=<path/do/treinamento>
Para exemplificar, tomemos como base a estrutura abaixo:
results-19
│
└───PPO
│
├───PPO_fisico_64eca_...
├───PPO_fisico_56150_...
├───PPO_fisico_74880_...
└───PPO_fisico_faa17_...
Executando o seguinte comando, abrirá o tensorboard com esses 4 experimentos:
tensorboard --log-dir=results-19
Podemos observar 4 cores diferentes nas curvas de cada gráfico, indicando os 4 experimentos distintos realizados.
plot_results.py
Dentro da pasta src, existe um código chamado "plot_results.py". Essa função apresenta diversos parâmetros que serão explicados abaixo:
- EXPERIMENT : Path para o experimento. Único parâmetro obrigatório dessa função.
- --no-phase : Remove a informação do nível (dificuldade do jogo) nos gráficos. Opcional.
- --no-noise : Remove ruído nas colunas de 'hist_stats'. Opcional.
- --window (-w) : Tamanho da janela para média móvel. Opcional, valor padrão igual a 10.
- --dpi : DPI da figura gerada. Opcional, valor padrão igual a 120.
- --no-default-columns : Não gera gráficos das colunas padrão. Opcional.
- --column : Colunas adicionais para gerar o gráfico. Opcional.
Execução do código:
python plot_results.py <path/do/experimento>