File size: 2,787 Bytes
14d71e5
 
 
 
 
 
 
 
 
e7a0a03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14d71e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
---
library_name: ml-agents
tags:
- SoccerTwos
- deep-reinforcement-learning
- reinforcement-learning
- ML-Agents-SoccerTwos
---

# ML-Agents SoccerTwos Training

Este repositorio contiene los pasos necesarios para entrenar un agente en el entorno `SoccerTwos` utilizando Unity ML-Agents.

## Requisitos

- Python 3.7 o superior
- Unity ML-Agents
- TensorFlow
- Acceso al entorno `SoccerTwos` (archivo `.zip` descargable)

## Instalaci贸n

1. **Clona el repositorio de ML-Agents:**

   ```bash
   git clone --depth 1 https://github.com/Unity-Technologies/ml-agents

2. **Instala los paquetes necesarios:**

    Dir铆gete a la carpeta clonada y ejecuta:
    ```bash
    cd ml-agents
    pip3 install -e ./ml-agents-envs
    pip3 install -e ./ml-agents

## Configuraci贸n del entorno de entrenamiento

1. **Crea la carpeta para el entrenamiento:**
    ```bash
    mkdir -p ./train-soccer

2. **Descarga el entorno SoccerTwos:**

    Utiliza el siguiente script para descargar el archivo .zip del entorno y extraerlo:

      ```bash
      import gdown
      file_id = '1KuqBKYiXiICU4kNMqEzhgyuPF5_45CL'
      gdown.download(f'https://drive.google.com/uc?export=download&id={file_id}', './train-soccer/SoccerTwos.zip', quiet=False)
  Extrae el archivo:
  
      unzip -d ./train-soccer ./train-soccer/SoccerTwos.zip

3. **Cambia los permisos del archivo extra铆do:**

    ```bash
    chmod -R 755 ./train-soccer/SoccerTwos/SoccerTwos.x86_64



## Configuraci贸n de par谩metros de entrenamiento

  Crea un archivo YAML con los par谩metros de entrenamiento. Un ejemplo es el siguiente:

    
    behaviors:
      SoccerTwos:
        trainer_type: poca
        hyperparameters:
          batch_size: 4096
          buffer_size: 40960
          learning_rate: 0.0002
          beta: 0.01
          epsilon: 0.15
          lambd: 0.92
          num_epoch: 5
          learning_rate_schedule: linear
        network_settings:
          normalize: true
          hidden_units: 1024
          num_layers: 3
          vis_encode_type: simple
        reward_signals:
          extrinsic:
            gamma: 0.995
            strength: 1.0
        keep_checkpoints: 10
        max_steps: 1000000
        time_horizon: 1200
        summary_freq: 5000
        self_play:
          save_steps: 50000
          team_change: 300000
          swap_steps: 3000
          play_against_latest_model_ratio: 0.6
          initial_elo: 1200.0

  Y guardarlo en la carpeta 'train-soccer'

    with open('./train-soccer/SoccerTwos.yaml', 'w') as file:
      file.write(yaml_content)


## Entrenamiento del agente

  Inicia el entrenamiento con el siguiente comando:

    mlagents-learn ./train-soccer/SoccerTwos.yaml --env=./train-soccer/SoccerTwos/SoccerTwos.x86_64 --run-id="SoccerTwosNew" --no-graphics --force