# TP IA GO -- Nemo D'ACREMONT, Martin EYBEN

## Obtenir de l'aide

Une page d'aide est disponible en utilisant le flag `-h` ou `--help`.

## Activation de la venv

Exécutez :

```sh
python -m venv venv
. ./venv/bin/activate
```

## Télécharger les dépendances

```sh
pip -p ./requirements.txt
```

## Chargement des données

Le script télécharge par défaut les données puis les transforme de la façon
suivante :

- Duplique les données en faisant des rotations de 90°
- Échange les couleurs des plateaux, en échangeant aussi les scores
- Duplique les données en prenant le symétrique des plateaux

Il les stocke ensuite les datasets sous le nom `trainset.pt` et `testset.pt`
dans le dossier `output_dir` (`./current` par défaut). Il peut être spécifié
avec l'option `-O` comme suivant :

```sh
mkdir -p /tmp/mydata
python ./main -O /tmp/mydata
```

Le script sauvegarde ces ensembles pour éviter de devoir les recréer à chaque
fois, il suffit d'utiliser les arguments comme suivant pour les charger au
lancement :

```sh
python ./main -t ./trainset.pt
```

```sh
python ./main -T ./testset.pt
```

Il est évidemment possible de combiner les deux :

```sh
python ./main -t ./trainset.pt -T ./testset.pt
```

## Entraînement

Pour entraîner de zéro, il suffit de lancer le script sans spécifier de modèle
avec l'argument `-m`.

Il est possible de reprendre un entraînement en utilisant l'argument `-m`,
comme suivant :

```sh
python ./main -m ./model.pt
```

## Création des résultats

Afin d'utiliser le modèle pour générer le fichier `results.txt`, il faut
utiliser l'argument `-R` avec le chemin du dossier `json.gz` à utiliser.

Voici un exemple :

```sh
python main.py -R positions-to-evaluate-8x8-2025-sample.json.gz -m model.pt
```
