Bonjour et bienvenue dans cette histoire presque le titre final de ce module.
Je vais simplement expliquer le code principal qui exécutera le tout avant que nous obtenions les résultats
intéressants et regardions les vidéos.
Il s’agit donc du code principal et, comme vous pouvez le constater, c’est assez court.
Nous commençons par importer les bibliothèques et les modules, ainsi que les différentes classes et fonctions que nous avons
créées, comme Altikriti, à partir de notre fichier de modèle.
La fonction train à partir du fichier train et la fonction test à partir du fichier test et, bien
sûr, nous importons notre optimiseur.
Ensuite, nous commençons par la première section où nous entrons dans une classe avec tous les paramètres.
Et c'est ceci peut-être.
Rappelez-vous que c'est l'objet BRAM que nous avons créé à partir de cette classe harams.
Chaque fois que nous obtenons un paramètre tel que le taux d'apprentissage, nous ne sommes pas sans.
Alors passons-les en revue rapidement.
Ce premier ou ici est les taux d'apprentissage.
Comme vous pouvez le constater, nous en choisissons un petit et vous notez le deuxième paramètre.
Encore une fois, nous prenons comme 0. 39 nous prenons un paramètre OneTel un ensemble de 1 16 processus 20 étapes et longueur maximale
de 10000.
Et nous en avons parlé, c’est le paramètre que nous avons défini pour nous assurer que l’agent ne reste pas indéfiniment dans
un état de l’environnement afin que cela arrête la partie.
Si la longueur de l'épisode dépasse cette longueur maximale, nous obtenons bien sûr le nom de notre
environnement.
La rupture est zéro.
Et en passant, vous pouvez également jouer sur d'autres environnements en changeant simplement le nom de l'environnement
ici.
Donc, si vous voulez jouer à d’autres versions de Breakout ou même à d’autres jeux Atari, vous pouvez
simplement remplacer ce dépassement de zéro par d’autres jeux.
Mais je peux vous dire que la vidéo époustouflante est déjà très difficile.
Bon alors tous les paramètres ici.
Et puis il y a le code principal pour l'exécution principale.
Et alors, voyons ce que nous faisons dans cette première ligne.
Nous mettons en place un thread par cœur.
Ensuite, à la deuxième ligne, nous obtenons tous les rendus lorsque vous savez créer un nouvel objet de
la classe Paramjit qui initialisera ici tous ces paramètres car il existe des variables associées à cet objet
BRAM.
Ensuite, nous mettons la graine.
Ensuite, nous obtenons notre environnement en utilisant l’arborescence Créer et nous fonctionnons avec le nom de notre environnement qui sort
de zéro.
Vous voyez les cellules qui nomment et par conséquent paramètre et nom sont plutôt nuls.
Donc, cela nous procurera l’environnement de rupture.
Et au fait, ce n’est pas la manière habituelle de créer un environnement, mais vous
devez améliorer l’ensemble du processus et les performances.
Nous utilisons cela pour créer un environnement optimisé et nous le faisons, l'univers est un paquet qui vient
avec tous les paquets que vous avez installés sur un moteur ouvert.
Eh bien, grâce à l’univers, nous obtenons un environnement optimisé.
C'est ce dont il s'agit ici.
Ensuite, nous obtenons notre modèle partagé en créant un objet de la classe de critique active.
Et donc ici, il est important de comprendre que ce modèle partagé est le modèle partagé par les
différents agents.
Nous avons donc différents fils dans différents cours.
Et en parlant de menaces sur la ligne suivante ici, modèle plissé qui partage la mémoire, ce que nous faisons, c’est que nous
stockons le modèle dans la mémoire partagée de l’ordinateur afin que tous les threads puissent y accéder même
s’ils suivent un chemin différent.
C'est ce que nous faisons ici.
C’est pour cela que nous obtenons notre optimiseur lié aux paramètres de notre modèle partagé et avec
un taux d’apprentissage d’un point ou un.
Et encore une fois, il est important de comprendre que l'optimiseur est également partagé car il
va agir sur le modèle partagé et indiquer que la ligne suivante optimise la mémoire partagée, nous stockons l'optimiseur dans
la mémoire partagée afin que tous les agents puissent y accéder le modèle.
Nous initialisons ensuite nos processus afin que le processus de test ne mette pas à jour le modèle partagé, mais qu’il l’utilise simplement
pour l’essayer en une partie, pour imprimer la partition et enregistrer les vidéos.
C'est donc exactement ce qui est fait ici avec le test Target Equals.
C'est le processus de test et ce processus est coupé de la torture que le pré-traitement multiple.
Donc, ici et ce qu'il fait, c'est qu'il exécute une fonction sur un thread indépendant.
Ainsi, lorsque nous redémarrons, nous démarrons un nouveau processus, qui était la dernière année de l’année dernière.
Et puis avec ce processus d’appendice P nous ajoutons le processus dans la liste des processus.
Enfin, dans cette boucle, nous ne faisons qu’une boucle pour exécuter tous les autres processus qui seront formés en mettant
à jour le modèle partagé.
Et c'est essentiellement ce qui se passe dans les dernières lignes de code ici.
Donc, si vous ne voulez pas entrer dans les détails, il est important de comprendre que cela va
exécuter les processus de manière optimale et que nous devrions donc tous être doués pour exécuter ce code
et avoir un modèle bien formé, puis regarder Les resultats.
Donc j'ai hâte de faire ça.
Cela va être très excitant.
Je vais essayer de trouver des gens maintenant pour que nous puissions tous le regarder ensemble.
Et ainsi jusqu'à la prochaine fois je