Hallo und herzlich willkommen zu diesem Tutorial.
Herzlichen Glückwunsch noch einmal, dass Sie damit fertig sind.
Sehen Sie, wir haben es geschafft, wir haben die Gehirne gemacht und wir haben sie trainiert.
Aber jetzt müssen wir noch einen Testagenten erstellen, der morgen überhaupt kein Datum ist, sondern nur
das Aktienmodell verwendet, um eigene Erkundungen durchzuführen.
Und natürlich werden wir in diesem Code einige Videos aufnehmen, und die Testagenten werden
mit einer bestimmten Punktzahl ausbrechen.
Lasst uns diesen Code durchgehen.
Das wichtigste ist, wenn ich Ihnen sagte, wir werden es nicht Zeile für Zeile kodieren, aber ich denke, es
ist wichtig, dass Sie verstehen, was hier vor sich geht.
Also gehen wir mit diesem Code in den ersten Abschnitt, wie Sie bemerkt haben.
Wir importieren die Bibliotheken und dann haben wir diese Testfunktion gefunden, die diesen Testagenten dazu veranlasst, seine eigenen
Erkundungen durchzuführen und das Breakout-Spiel zu spielen.
Wir bekommen also diese Testfunktion aus drei Argumenten. Das erste ist das Ranking, das der Testagent noch synchronisieren
muss, wie wir es für die Trainingsagenten getan haben.
Dann haben wir natürlich unsere Parameter, weil Sie welche brauchen.
Und natürlich haben wir das gemeinsam genutzte Modell, da dieser Testagent ein gemeinsam genutztes Modell verwendet, um seine
eigenen Erkundungen durchzuführen.
In Ordnung, dann gehen wir in die Funktion und diese Codezeile synchronisieren wir mit dem Testagenten.
Genau wie zuvor importieren wir die Umgebung.
Ich erinnere daran, dass dies im Hauptcode enthalten ist, der im nächsten Tutorial enthalten sein wird.
Nun, und der Name hier wird durch einen Bruch von Null ersetzt, so dass wir in die Break-Zero-Umgebung
gehen und das Spiel und die Rotkreuz-Trumans spielen können, die die Videos unseres Abends ausbrechen lassen.
Im Grunde bedeutet diese Codezeile insgesamt, dass wir eine Umgebung mit Video betreiben.
In der nächsten Codezeile synchronisieren wir diese Umgebung also genau mit der Trend-Funktion.
Dann erhalten wir unser Modell und erstellen dazu ein Objekt der Aktivitätsklasse und setzen die
Eingabeform mit unserem Umgebungsbeobachtungsraum, und Formnullen sind genau wie die Zugfunktion und unsere
Ausgaben, die die Aktionen mit einem Aktionsraum sind.
Also genau wie vorher hier etwas Neues, da wir mit dem Training fertig sind.
Wir möchten das Modell nicht in den Zugmodus versetzen, weil wir einfach nicht wollen, dass es trainiert, sondern
in die Entwicklung geht.
Und das machen wir hier mit einem Modell, das sich entwickelt hat.
Das bedeutet im Grunde, den Testagenten in einen Modus zu versetzen, in dem er die getestete Leistung im
Grunde getestet hat.
Dann erhalten wir hier unsere Eingabestatus, dh die Eingabebilder aus dem Spiel, die an diesem Punkt ein ganzes
Rennen sind.
Dann verwandeln wir sie in Fackeltänzer.
Hier initialisieren wir einige der Wörter hier.
Wir initialisieren bis auf wahr.
Also noch genau wie beim letzten Mal dann etwas Neues, führen wir dieses dritte mit einer Zeitfunktion ein, um
die Berechnungszeit zu messen.
Und das ist, weil Sie den Ausgangspunkt erhalten möchten.
Dann verwenden wir für die Aktionen eine sehr praktische Art von Cue, die es erlaubt, ein Element von rechts oder von
links zum Cue hinzuzufügen.
Das ist sehr praktisch und ich gebe Ihnen die Referenz, die ich denke, in einer dekrementierten Version des Codes.
Sie werden also sehen, was dieser Dequeue ist und was das erlaubt.
Dann initialisieren wir die Länge einer Episode natürlich mit Null und erhöhen dann die Größe
in dieser Well-Schleife.
Also benutzen wir hier den gleichen Trick.
Wenn dies wahr ist und sich in der Schleife befindet, wird die Länge der Episode um eins erhöht.
Wenn das Spiel beendet ist, wenn das Spiel beendet ist, laden wir den letzten Satz des gemeinsam genutzten Modells mit dem von
den anderen Modellen datierten Aktienmodell.
Denken Sie daran, dass das freigegebene Modell hier nicht mehr datiert ist.
Wenn das Spiel beendet ist, wenn das Spiel beendet ist, initialisieren wir die Zellzustände neu. Siehe X und
dann die Zustände H x. Andernfalls behalten wir die gleichen Zustände und Zustände bei, wenn das Spiel nicht zu Ende ist.
Um jedoch sicherzustellen, dass sie variabel gelernt werden, können sie an einen Farbverlauf angehängt werden.
OK, das ist etwas, was wir bereits in der Trendfunktion tot waren und dann noch in der while-Schleife und nachdem wir Daten
hatten, die in den verborgenen Zuständen den richtigen Weg angeben, abhängig von den beiden Fällen hier.
Nun, was wir tun, bekommen wir die Vorhersagen von morgen.
Genau das machen wir hier mit dieser Codezeile.
Wir erhalten also den Wert, der die Ausgabe des Kritikers ist, der tatsächliche Wert, der die Ausgabe des Schauspielers ist.
Und dann sind alle verborgenen Zustände H x und die Zellzustände der X, dann erzeugen wir eine
Verteilung der Wahrscheinlichkeiten der Aktionen, die hier den Aktionswert Q-Werte haben.
Und das machen wir mit der nächsten Funktion.
Und natürlich brauchen wir hier nicht die Glückswahrscheinlichkeiten, da dies nur für das Training
des Testagenten gilt.
Es werden nur die Aktionen gespielt, die wir verwenden werden, die Sie verwenden, wie Sie eine bestimmte Aktivität zum Scheitern verurteilen,
aber wir trainieren hier nicht.
Wir haben also nur eine Requisite und aus diesem Grund spielen wir die Aktion, indem wir diese Wahrscheinlichkeiten direkt an RMX
übertragen, dh die Aktion, die die höchste Wahrscheinlichkeit hat.
Und der Grund ist, dass der Testagent keine Untersuchung durchführt.
Denken Sie daran, dass wir die Möglichkeit haben möchten, einige Aktionen mit geringen Wahrscheinlichkeiten in Anspruch
zu nehmen, wenn Sie diese anderen Aktionen genauer untersuchen möchten, und Sie wissen, dass Sie
nicht jedes Mal die Aktion ausführen, die die höchste Wahrscheinlichkeit hat Aus diesem Grund nehmen wir die
Aktion mit der höchsten Wahrscheinlichkeit direkt wieder auf. Sobald wir die Aktion gespielt haben, erreichen wir den nächsten
Zustand und erhalten das nächste Wort.
Und das ist ein Tag, ob das Spiel vorbei ist oder nicht.
Das alles bekommen wir mit dieser Codezeile, indem wir die Aktion spielen, nachdem wir sie hier mit unserem Max
ausgewählt haben.
Also spielen wir die Action hier und wir bekommen den Status, wir bekommen die Belohnung und das nochmal, und da wir gerade eine neue
Belohnung bekommen haben, aktualisieren wir etwas von der Belohnung, indem wir einfach dieses neue Wort hinzufügen.
Und zum Schluss, wann immer das Spiel fertig ist.
Wenn das heißt, wenn das Spiel fertig ist, wenn ich das Spiel gut beendet habe, werden wir die
Ergebnisse mit der gegenteiligen Zeit ausdrucken.
Wir wollten die Länge der Episode, also wie lange es gedauert hat.
Sehr gut spielen und so drucken wir alle diese Variablen mit diesen winzigen Tricks.
Das ist für die Zeit dann wollen wir etwas, es ist nur eine Variable.
Einige der Wörter und Ideen sind ausführlich die Länge des gegenwärtigen OK.
Und wenn wir alle Ergebnisse gut ausgedruckt haben, seit das Spiel zu Ende ist und wir ein neues Spiel starten
möchten, werden wir alles neu initialisieren.
Das ist die Summe von zwei Wörtern, die die Länge einer Episode auf Null setzen.
Wir werden alle Aktionen erneut ausführen, indem Sie mit dieser Taste die von Ihnen bekannten
Eingabebilder zurücksetzen, indem Sie alle Pausen insgesamt wiederholen.
Und schließlich nutzen wir diese Zeit, die 60 Sekunden dauert, um eine Minute Pause einzulegen, damit die anderen Agenten üben
können.
Und wenn das Spiel vorbei ist.
OK.
Und schließlich haben wir diese letzte Codezeile, die uns den neuen Zustand bringen wird, und dann können wir weitergehen.
Wir können in diesem neuen Spiel weitermachen.
Also los geht's.
Das ist die Testfunktion.
Dinge, zu denen Sie die Videos in einem oder zwei Tutorials sehen werden.
Ich hoffe, Sie werden insgesamt wie beim letzten Mal sein, um die Ergebnisse zu sehen, die mit Ihnen erzielt werden.
Curial und mir wird das Spaß machen.
Und ich sage es dir.
Erwarten Sie gute Ergebnisse.
Denken Sie jedoch daran, dass dieses Breakout-Spiel eine große Herausforderung war.
Wir dachten, es sei ein einfaches Spiel, das wir zuerst spielen sollten, aber überhaupt nicht.
Es stellte sich heraus, dass es viel schwieriger war als das Verhängnis.
Deshalb haben wir es in das letzte Modul gesteckt.
Aber machen wir diese Hauptfunktion im nächsten Tutorial.
Gleich Dies ist hier nicht das Wichtigste.
Jetzt, da der A-380 dement ist, werden wir ihn nicht zeilenweise codieren, er wird den Code erweitern und sehr schnell werden
wir die Ergebnisse erhalten.
Bis dahin genießen Sie die KI.