Bonjour et bienvenue dans ce tutoriel.
Félicitations encore pour avoir fini avec ça.
Voir nous avons fait nous avons fait les cerveaux et nous les avons formés.
Mais maintenant, nous devons encore créer un agent de test qui ne sera pas du tout une date pour demain, mais il
utilisera simplement le modèle de partage pour effectuer ses propres explorations.
Et bien sûr, dans ce code, nous enregistrerons quelques vidéos et ce seront les agents de test de vidéos
qui se démarqueront avec un certain score.
Alors passons en revue ce code.
Le plus important est fait, donc je vous ai dit que nous n'allons pas le coder ligne par ligne, mais je pense
qu'il est important que vous compreniez ce qui se passe ici.
Nous y allons donc avec ce code dans la première section, comme vous l'avez remarqué.
Nous avons importé les bibliothèques, puis nous avons trouvé cette fonction de test qui permettra à cet agent de test de faire
sa propre exploration et de jouer au jeu épineux.
Nous obtenons donc que la fonction de test prend trois arguments. Le premier est le classement qui doit encore synchroniser l'agent
de test comme nous l'avons fait pour les agents de formation.
Ensuite, nous avons bien sûr nos paramètres, car vous en avez besoin.
Et bien sûr, nous avons le modèle partagé car cet agent de test utilisera un modèle partagé pour effectuer
sa propre exploration.
Très bien, nous entrons dans la fonction et cette ligne de code est synchronisée avec l’agent de test.
Exactement comme nous le faisions auparavant, nous importons l'environnement.
Je rappelle donc cela dans le code principal qui sera dans le prochain tutoriel.
Et le nom ici sera remplacé par une pause de zéro afin que nous puissions entrer dans l’environnement de la pause
zéro et jouer au jeu ainsi qu’aux Trumans de la Croix-Rouge qui recevront les vidéos de notre soirée.
Donc, fondamentalement, cette ligne de code au total signifie que nous exécutons un seul environnement avec la vidéo.
Ensuite, à la ligne de code suivante, nous synchronisons cet environnement avec le même principe que la fonction Trend.
Ensuite, nous obtenons notre modèle et pour ce faire, nous créons un objet de la classe d'activité et nous plaçons la
forme en entrée dans notre espace d'observation de l'environnement et les zéros de forme sont exactement comme la fonction
train et nos sorties qui sont les actions avec un espace d'action.
Donc, exactement comme avant, il y a quelque chose de nouveau ici puisque nous en avons terminé avec la formation.
Nous ne voulons pas mettre le modèle en mode train parce que simplement nous ne voulons pas qu'il soit entraîné, nous
voulons le mettre en développement.
Et c'est ce que nous faisons ici avec un modèle qui a évolué.
Il ne s’agit donc tout simplement que de mettre l’agent de test dans un mode qui permettra de tester
les performances évaluées.
Ensuite, nous avons ici nos états d’entrée qui sont les images d’entrée du jeu qui sont à ce stade
une course entière.
Ensuite, nous les convertissons en danseurs de flambeau.
Ici, nous initialisons certains mots.
Nous initialisons à vrai.
Donc, toujours comme la dernière fois puis quelque chose de nouveau, nous introduisons ce troisième viable avec une fonction de temps pour
mesurer le temps des calculs.
Et c'est parce que vous voulez avoir le point de départ.
Ensuite, ici, les actions que nous utilisons utilisent un type de repère très pratique qui permet d’ajouter un élément au repère à partir de la
droite ou de la gauche.
C'est donc très pratique et je vais vous donner la référence, je pense, en version décrémentée du code.
Donc, vous allez voir ce qu'est cette file d'attente et c'est ce qui permet de le faire.
Ensuite, nous initialisons la longueur d’un épisode avec zéro bien sûr, puis nous incrémentons la taille dans cette
boucle de puits.
Nous utilisons donc le même truc ici.
Bien que vrai et dans la boucle, nous incrémentons la longueur de l'épisode de un.
Lorsque le jeu est terminé lorsque le jeu est terminé, nous rechargeons le dernier ensemble du modèle partagé, le modèle de partage
daté par les autres modèles.
Rappelez-vous qu'ici, le modèle partagé n'est plus daté.
Toujours si le jeu est terminé si le jeu est terminé, Reinette ré-initialise les états de cellules voir
X puis les états H x et si le jeu n’est pas terminé, nous conservons les mêmes états et états de cellule.
Mais pour s’assurer qu’ils sont enseignés de manière variable afin qu’ils puissent être attachés à un dégradé.
OK, c’est donc quelque chose que nous avons déjà éliminé dans la fonction de tendance, puis dans la boucle while et après que nous
ayons des données qui sont dans les états masqués de la bonne façon, selon les deux cas présentés ici.
Eh bien, que faisons-nous? Nous obtenons les prévisions de demain.
C'est exactement ce que nous faisons ici avec cette ligne de code.
On obtient donc la valeur qui est la sortie du critique la valeur réelle qui est la sortie de l'acteur.
Et ensuite, tous les états cachés H x et la cellule États X en haut sont générés, puis nous générons
une distribution des probabilités des actions correspondant à la valeur d’action Q Valeurs ici.
Et nous faisons cela avec la fonction suivante.
Et bien sûr, nous n’avons pas besoin de connaître les probabilités de chance ici, car il s’agit uniquement de la
formation de l’agent d’essai.
Il ne fera que jouer les actions que nous allons utiliser, vous le savez comme une mauvaise activité, mais nous
ne faisons aucune formation ici.
Donc, nous avons juste un accessoire et à partir de là, nous jouons l'action en prenant directement pour RMX ces probabilités c'est-à-dire
qu'il prend l'action qui présente la probabilité la plus élevée.
Et la raison en est que l'agent de test ne fait aucune exploration.
Rappelez-vous que nous voulons avoir une chance de choisir certaines actions peu probables lorsque vous souhaitez
explorer certaines de ces autres actions et que vous savez que vous ne prenez
pas à chaque fois l'action la plus probable mais que l'agent de test c'est pourquoi nous prenons
directement l'action qui a la probabilité maximale, puis une fois que nous jouons l'action, nous atteignons l'état suivant
et nous obtenons le mot suivant.
Et c'est un jour daté si le jeu est terminé ou non.
Nous obtenons donc tout cela avec cette ligne de code en jouant l'action après l'avoir sélectionnée avec notre
Max ici.
Donc, nous jouons l'action ici et nous obtenons l'état où nous obtenons la récompense et nous le faisons à nouveau et ensuite, puisque nous venons de recevoir
une nouvelle récompense, nous allons mettre à jour une partie de la récompense en ajoutant simplement ce nouveau mot.
Et enfin chaque fois que le jeu est terminé.
Donc, si cela signifie que lorsque le jeu est terminé lorsque je finis de jouer au jeu, nous allons
imprimer les résultats avec le temps opposé.
Nous voulions la longueur de l'épisode, c'est combien de temps il a duré.
Jouer à fond et c’est comme ça que nous imprimons toutes ces variables en utilisant ces petites astuces.
C'est pour le moment, alors nous en voulons, c'est juste une variable.
Certains des mots et des idées en détail est la longueur du présent OK.
Et puis, une fois que nous avons bien imprimé tous les résultats puisque le jeu est terminé et que nous voulons commencer un
nouveau jeu, nous allons tout réinitialiser.
C'est la somme de deux mots zéro la longueur d'un épisode à zéro.
Nous allons rejouer toutes les actions en utilisant cette fonction de clé réinitialise les images d'entrée
que vous connaissez en répétant toutes les pauses.
Et finalement, nous utilisons ce temps qui dort 60 secondes pour faire une pause d’une minute afin de laisser les autres
agents s’exercer.
Et que si le jeu est terminé.
D'ACCORD.
Et enfin, nous avons cette dernière ligne de code qui nous donnera le nouvel état et nous pourrons ensuite avancer.
Nous pouvons continuer dans ce nouveau jeu.
Alors on y va.
C'est la fonction de test.
Les choses pour lesquelles vous verrez les vidéos dans un ou deux tutoriels.
J'espère que vous serez comme la dernière fois à regarder les résultats avec vous.
Curial et moi ça va être amusant.
Et je te le dis.
Attendez-vous à voir de bons résultats.
Mais gardez à l'esprit que ce jeu d'évasion était super stimulant.
Nous pensions que c'était un jeu simple, mais pas du tout.
En fait, cela s'est avéré être beaucoup plus difficile que le destin.
Et c'est pourquoi nous l'avons mis dans le dernier module.
Mais de toute façon, faisons cette fonction principale dans le prochain tutoriel.
Même ce n'est pas le plus important ici.
Maintenant que l’A-380 est dément, nous ne le coderons pas ligne par ligne, il développera le code et très rapidement
nous obtiendrons les résultats.
Jusque-là, profitez de l'IA.