O tetRL.io é o projeto final da disciplina de Introdução à Multimídia, do Centro de Informática da Universidade Federal de Pernambuco, o CIn - UFPE. A ideia do projeto é desenvolver um algoritmo de Reinforcement Learning para um single agent jogar o famoso jogo de Tetris. Nesse projeto, a engine de Tetris usada é feita pelo próprio código em Python, porém a renderização da interface é feita no Browser. Para isso, utilizamos da base do tetr.io, um outro projeto de nossa equipe para a disciplina de Engenharia de Software do CIn, e criamos um repositório mais simples que apenas renderizasse o grid do Tetris e apresentasse alguns dados do treinamento da rede, o web-tetRL.io. Mais detalhes da implementação da interface estão disponíveis no repositório onde está hospedado o nosso projeto. Para isso, clique aqui.
Métodos de carregamento e looping de treino da rede neural para a criação de modelos.
Execução de um modelo já treinado no ambiente.
Estrutura do Tetris com definição de regras, peças e métodos do environment do aprendizado.
Integração com o web-tetRL.io.
Definição e inicialização da arquitetura da rede neural.
$ python train.py
No arquivo train.py, certifique-se de que os seguintes parâmetros estarão definidos com os valores corretos para o diretório e nome do arquivo, assim como a flag de load definida como True.
parser.add_argument("--saved_path", type=str, default="trained_models") # Diretório de salvamento
parser.add_argument("--saved_name", type=str, default="tetris") # Arquivo de salvamento
parser.add_argument("--checkpoint_name", type=str, default="tetris") # Arquivo de carregamento
parser.add_argument("--load", type=bool, default=True) # Flag para carregamento
E execute o mesmo comando para um novo treino:
$ python train.py
No arquivo test.py, certifique-se de que os seguintes parâmetros estarão definidos com os valores corretos para o diretório e nome do arquivo.
parser.add_argument("--saved_path", type=str, default="trained_models") # Diretório de carregamento
parser.add_argument("--checkpoint_file", type=str, default="tetris") # Arquivo de carregamento
$ python test.py
- Alexandre Burle (aqb)
- Danilo Vaz (dvma)
- Humberto Lopes (hlfs2)
- Matheus Andrade (mvtna)
- Uanderson Ricardo (urfs)
O projeto foi fortemente inspirado pelo código disponibilizado por Viet Nguyen, sob a licença MIT. Gostaríamos de deixar explícito nossos agradecimentos ao autor. Clique aqui para visitar o Github do projeto base.