intelligence_du_pendule_de_furuta
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
intelligence_du_pendule_de_furuta [2022/05/24 19:08] – [Notre environement] serge | intelligence_du_pendule_de_furuta [2022/10/07 10:11] – [Installation, utilisation] serge | ||
---|---|---|---|
Ligne 13: | Ligne 13: | ||
Une Intelligence Artificielle n'est jamais intelligente.\\ | Une Intelligence Artificielle n'est jamais intelligente.\\ | ||
**C' | **C' | ||
- | |||
=====Ressources===== | =====Ressources===== | ||
Ligne 20: | Ligne 19: | ||
* **[[https:// | * **[[https:// | ||
* **[[https:// | * **[[https:// | ||
- | | + | * **[[https:// |
=====Principes===== | =====Principes===== | ||
Ligne 28: | Ligne 27: | ||
* Le serveur répond par une impulsion sur le moteur dans un sens ou dans l' | * Le serveur répond par une impulsion sur le moteur dans un sens ou dans l' | ||
Un cycle se termine au bout de 2000 steps. | Un cycle se termine au bout de 2000 steps. | ||
- | |||
=====Installation de l' | =====Installation de l' | ||
- | Nous utilisons Gym de OpenAI et Stable-Baselines3. | + | Nous utilisons Gym de OpenAI et Stable-Baselines3.\\ |
- | + | Le code de Stable-baselines est le code de Baselines nettoyé, amélioré, documenté. Stable-baselines3 est la dernière version, il utilise Torch. [[https:// | |
- | ===Stable-baselines3=== | + | Les modules python à installer: stable-baselines3 et pyglet. Pyglet ne sert qu'a tester l' |
- | Le code de Stable-baselines est le code de Baselines nettoyé, amélioré, documenté. | + | |
- | Stable-baselines3 est la dernière version, il utilise | + | |
- | * **[[https:// | + | |
- | + | ||
- | ===Installation: | + | |
- | | + | |
- | Les modules python à installer: stable-baselines3[extra] | + | |
<code bash> | <code bash> | ||
Ligne 60: | Ligne 51: | ||
</ | </ | ||
+ | =====Petit Pendule de Furuta===== | ||
+ | ====Version tout en python==== | ||
+ | Au bout de très longs apprentissages, | ||
+ | Le codeur du balancier de 4 000 points crée 16 000 callbacks. En estimant la vitesse de rotation du balancier à 1 tour par seconde, la fréquence d' | ||
+ | Le moteur a un codeur de 1 000 points: le même calcul ajoute 4 000 Hz.\\ | ||
+ | |||
+ | Les gpio d'une Pi ne peuvent pas tourner à plus de 20 000 Hz: [[https:// | ||
+ | |||
+ | Les vitesses de rotation sont plus rapides que 1 tour/ | ||
+ | |||
+ | Le codeur de 4 000 points a été remplacé par un codeur de 1 000 points, qui est grandement suffisant: les frottements ne permettent pas d' | ||
+ | |||
+ | ===Training avec " | ||
+ | La méthode training_best de train_test.py est étrange: la doc n'est pas claire, ça ne finit jamais, il y a un message d' | ||
+ | <code python> | ||
+ | eval_callback = EvalCallback(self.env, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | ====Version avec ESP32==== | ||
=====Suivi de l' | =====Suivi de l' | ||
====Installation, | ====Installation, | ||
tensorboard est dans les requirements.\\ | tensorboard est dans les requirements.\\ | ||
- | Voir **[[https:// | ||
Dans le dossier du projet, qui contient le venv=mon_env, | Dans le dossier du projet, qui contient le venv=mon_env, | ||
./ | ./ | ||
Ligne 73: | Ligne 86: | ||
- | ====Des exemples==== | + | ====Exemples==== |
- | {{ : | + | {{: |
- | + | {{: | |
- | {{: | + | {{: |
- | {{: | + | {{: |
- | {{: | + | |
====Moyenne des récompenses==== | ====Moyenne des récompenses==== | ||
- | Permet d' | + | {{: |
avec rollout/ | avec rollout/ | ||
- | {{ : | ||
- | |||
- | |||
- | =====Tableau d' | ||
- | {{: | ||
- | |||
- | {{: | ||
- | **Parameter Optimization** | ||
- | ^Numéro | ||
- | |Learning Rate en 10< | ||
- | |Ent Coef en 10< | ||
- | |Vf Coef | ||
- | |Nombre de steps | 276 000 | 82 000 | 614 000| 307 000 | 307 000 | 512 000 | 307 000 | 1 000 000 | | ||
- | |Note d' | ||
- | **Le nombre de steps doit être d'au moins 1 millions pour commencer à noter la rapidité d'un apprentissage** | ||
- | L' | ||
- | La récompense est le produit de la récompense du chariot par la récompense du balancier. Il faut beaucoup de temps pour que le model intègre cette notion. | ||
- | {{tag> bestiaire_ia pytorch tensorboard }} | + | {{tag> bestiaire_ia |
intelligence_du_pendule_de_furuta.txt · Dernière modification : 2022/10/07 10:11 de serge