Hallo und willkommen zu diesem Python-Tutorial.
In Ordnung, wir haben eine letzte Funktion, die wir in unserer Replay-Speicherklasse implementieren können.
Das ist die einfache Funktion und natürlich einige Stichproben aus unserem Gedächtnis.
Deshalb liefert diese Funktion diese Stichproben.
Also gut, lass es uns tun.
Wir werden es einfach nennen.
Auf geht's.
Und diese Funktion benötigt zwei Argumente als Eingabe.
Der erste ist wie üblich unser zukünftiges Objekt, um die Speicherklasse abzuspielen, und das zweite Argument ist, dass Sie versuchen können,
zu erraten.
Wir nehmen einige Proben fester Größe und müssen daher eine Größe für die Proben auswählen. Genauer gesagt,
nennen wir sie eine Losgröße.
Das ist der Name, den wir unserer zweiten Argumentgröße geben.
Und da gehen wir hin.
Wir haben unsere zwei Argumente und jetzt können wir die einfache Funktion implementieren.
Nun möchte ich Sie nur warnen, dass dies ein wenig technisch wird, aber ich versuche mein Bestes, um es zu erklären.
Wir beginnen also mit der Erstellung der Beispielvariablen.
Dies ist nur die Variable, die die Samples des Speichers enthält.
In Ordnung, so einfach ist gleich.
Und wie wollen wir diese Proben bekommen?
Zunächst einmal müssen wir unser Gedächtnis mitnehmen, weil wir die Samples aus unserem Gedächtnis bekommen.
Dann werden wir wahrscheinlich die Chargengröße benötigen, da die Proben die Eloses-Chargengröße
erhalten.
Wir brauchen also Speicher, wir brauchen Batch-Größe und dann brauchen wir ein paar Tricks, um ein gutes Format
dieser Samples zu erhalten.
Also, was ich tun werde, werde ich die Codezeile schreiben und dann dieses Element Element
für Element erklären.
Also machen wir's.
Ich beginne mit einer Zip-Funktion. Ich werde sehr bald erklären, was es macht.
Und innerhalb dieser Funktion füge ich einen Stern hinzu.
Ich werde das auch erweitern.
Der Stern und der Zufallsgedanke Central, so zufällig, wie Sie vielleicht gedacht haben, ist die zufällige Bibliothek, die wir hier importiert
haben.
Das ist der Hauptgrund, warum wir diese Zufallsbibliotheken importieren mussten, weil wir einige Stichproben
nehmen.
Von dieser zufälligen Bibliothek verwenden wir also die einfache Funktion.
Das sind also unsere Variablen und dies ist eine Funktion, also werde ich ein paar Klammern hinzufügen.
Wie Sie sehen, ist sample eine Funktion, und wir müssen einige Argumente einfügen, damit Sie das erste
Argument selbst sehen können.
Und wenn wir von Selbst sprechen, entspricht dies der Erinnerung an sich selbst, der Erinnerung an unser zukünftiges
Instanzobjekt unserer Wiederholungserinnerung für uns.
Ich füge hier also selbst diese Erinnerung hinzu und dann ist das zweite Argument, dass Sie die Größe der
Bechuana-Aufnahme zufällig aus unserem Gedächtnis erraten haben und dass wir ihr einen Namen gegeben haben, der Batch-Größe ist.
Das zweite Argument wird also sein, dass Bachche saugt.
Gut.
Die Codezeile ist also geschrieben und ich werde erklären, was sie macht.
Mit dieser einfachen Zufallspunktfunktion nehmen wir zunächst einige Stichproben aus dem Speicher, die eine
feste Größe dieser Größe haben.
Das ist verständlich.
Aber was macht diese Zipp-Stern-Funktion?
Nun, es gibt kein Geheimnis.
Es ist wie eine Umformfunktion.
Zum Beispiel möchte ich hier ein wenig hinzufügen, um zu erklären, dass ich es entfernen werde.
Nehmen wir an, wir haben zum Beispiel eine Liste der folgenden Elemente.
Erst eins zwei drei.
Und dann das zweite Element.
Vier fünf sechs.
Wir haben also eine Liste von zwei Doppeln aus drei Elementen, eins zwei drei vier fünf sechs.
Na dann, wenn ich die zip-Funktion mit dem Stern drauf anwende.
Nun, was so eine Zip-Star-Liste werden würde, wird einer neuen Liste gleich sein, aber mit einer anderen Form
und einer anderen Form wird eins für dann zwei drei und dann fünf sechs sein.
Gut.
Das ist genau das, was es tut.
Es formt gerade Ihre Liste um.
OK, jetzt verstehst du, was diese Zipp-Starliste macht.
Nun, lass uns erklären, warum wir es tun mussten.
So wie Sie verstanden haben, werden wir die Ereignisse zur Erinnerung hinzufügen und die Ereignisse haben die Form.
Erst der Staat, dann die Aktion und dann die Belohnung.
Für unseren Algorithmus möchten wir jedoch nicht, dass dieses Format das folgende Format haben soll.
Ein Format besteht aus drei Mustern, einem Muster für die Zustände, einem Muster für die Aktionen und einem Muster für
die Belohnung.
Nehmen wir zum Beispiel an, dass dieser eine bis drei Zustand eine Aktion eins ist.
Wir möchten eins und dann erklären, dass wir zwei Aktionen durchführen, und es war uns zu gut, was wir wollen, ist eine Charge für
jede Charge für Zustand eins und Zustand zwei.
Eins ist ein Spiel für Aktion eins in Aktion zwei und ein drittes für uns war eins und wir waren zwei.
Das ist genau das Format, das als nächstes erwartet wird, denn dann werden wir diese Chargen in eine
Torte verwandeln, die einen schrecklichen Einfluss hat, an den wir uns noch erinnern werden, eine Variable, die sowohl einen Tensor als auch einen
Gradienten enthält.
Und das, um in der Lage zu sein, in Bezug auf einen Tensor zu unterscheiden, um in der Lage zu
sein, in Bezug auf Intensivierung innerhalb der Struktur eines schrecklichen enthaltenden Tensors und eines Gradienten zu unterscheiden.
Wieder funktioniert Pi Fackel.
Zusammenfassend stellen wir fest, dass wir für jede der Aktionen und Belohnungen des Staates
einen Stapel erstellen, und dann werden wir jeden dieser Wetches separat in
einige Bytes einfügen jeder von ihnen.
Also gut, das ist der Zweck der Zipp-Funktion.
Also lassen Sie mich diesen Kommentar einfach entfernen.
Jetzt müssen wir nur noch die Muster zurückgeben.
Wie ich gerade erklärt habe, können wir die Samples nicht direkt zurückgeben, aus dem einfachen Grund, dass wir die
Samples in eine durchführbare Fackel bringen wollen.
Um dies für jedes der Samples zu tun, verwenden wir die Map-Funktion. Diese
Map-Funktion führt die Zuordnung von Samples zu Foltervariablen durch, die einen Tensor und einen Gradienten enthalten.
Wie Sie sehen können, benötigt diese Map-Funktion mehrere Argumente.
Das erste Argument ist eine Funktion und diese Funktion wird die Funktion sein, die die
Samples in einige Brennweitenvariablen umwandelt.
Und das zweite Argument ist, worauf wir diese Funktion anwenden wollen.
Das sind also die Argumente dieser Funktion und damit auch, was sie sein wird.
Das sind natürlich die Proben.
Das zweite Argument hier sind also die Symbole.
Aber dann definieren wir die Funktion, auf die wir angewendet werden wollen.
Jedes der Symbole.
Um hier eine Funktion zu definieren, müssen wir zuerst der Funktion einen Namen geben, die Lambda aufrufen wird.
Das ist nur ein Name und geben Lenda dann X, was die Variable dieser Funktion sein wird.
Das ist also nur ein Name und eine Angabe für die Variable und dann.
Und hier geben wir den Ausdruck der Funktion, die wir wollen, dass diese Lambda-Funktion
zurückkehrt, und sehen, was gut sein wird. Es soll etwas sein, das unsere Samples in eine Brennervariable
umwandelt, und dies zu tun.
Wir haben es bereits in einigen früheren Tutorials erwähnt.
Nun, wir haben die Voivode-Funktion für sie.
Die Voice wird funktionieren. Wir werden diese Umwandlung von einem Fackeltänzer in eine Variable vornehmen, die den Sensor
und die größte enthält.
Das erste, was ich hier hinzufügen möchte, ist eine variable Variable, in der ich X konvertieren werde,
da X die einfachsten sein werden, die auf die Samples angewendet werden.
Aber das ist alles, was noch eine technische Sache ist, die wir implementieren müssen, ist die Tatsache, dass
für jede Charge, die in der Stichprobe enthalten ist, beispielsweise die Charge von Aktionen a 1 8
2 3 und die anderen Aktionen, die wir in Bezug darauf verketten müssen zum ersten Mal Motor, der den Staaten entspricht.
Und warum müssen wir diese Verkettung machen.
Es ist nur so, dass alles gut ausgerichtet ist.
Das heißt, dass in jeder Reihe die Aktion angegeben wird und die Belohnung der gleichen Zeit t entspricht.
So erhalten wir schließlich eine Liste von Partien, die alle aufeinander abgestimmt sind, und jede Partie ist eine Torte in Richtung Voivod.
Wie können wir diese Verkettung machen?
Nun, wir müssen die Cat-Funktion aus der Fackel-Bibliothek verwenden.
Wir fügen hier eine Fackel hinzu, zu der wir hinzufügen, die auf X angewendet wird. In dieser Funktion
müssen wir jedoch die Dimension angeben, für die diese Verkettung erstellt werden soll.
Und wie ich gerade erwähnte, ist dies die erste Zeitmaschine, die das Indexzeitalter hat.
Und los geht's, wir haben unsere Funktion bereit. Diese Lunda-Funktion nimmt die Proben in
Bezug auf die erste Engine und verkettet sie schließlich in einige Brennweitenvariablen,
die sowohl einen Tensor als auch einen Gradienten enthalten gelten für castigate in dem
Sinne, dass wir differenzieren können, um Datengewichte zu haben.
Also gut, diese Funktion ist fertig.
Und hier ist das zweite Argument der Kartenfunktion.
Wir müssen angeben, auf was wir diese Funktion anwenden wollen, und das ist auf allen unseren Proben.
Da gehen wir.
Wir werden diese Lambda-Funktion auf alle Samples anwenden, so dass wir schließlich eine Liste von Übereinstimmungen erhalten,
bei denen jede Übereinstimmung ein PI-Brenner ist.
In Ordnung, das war ziemlich technisch, aber jetzt wird alles gut funktionieren.
Wir möchten diese Technik anwenden.
Danach verwenden wir es nur hier. Wenn Sie also nicht die technischen Details genau
verstehen wollen, können Sie diese drei Codezeilen einfach in Ihr Gedächtnis kopieren, wenn Sie mit Fackel eine
künstliche Intelligenz erzeugen möchten es wie du willst
Aber jetzt ist die gute Nachricht, dass wir mit dieser Replay-Wiedergabe der Memory-Klasse fertig sind und jetzt mit
der nächsten und letzten Klasse fortfahren können, was der gesamte Sicherheitsmodus sein wird.
In diesem Modell haben wir natürlich unser Netzwerk, das Wiederholung und dann den Rest des
Sicherheitsalgorithmus erfahren wird.
Es wird also eine viel größere Klasse sein.
Wir werden ungefähr 10 Funktionen erstellen, aber das ist nur, weil wir dies Schritt für Schritt machen, damit
Sie besser verstehen, was los ist.
Ich kann es also kaum erwarten, unser Sicherheitsmodell zu implementieren.
Und bis dahin ich