Bună ziua și bun venit la acest tutorial Python.
În regulă, avem o ultimă funcție de implementat în clasa noastră de memorie replay.
Aceasta este funcția simplă și asta e, desigur, pentru a obține niște mostre aleatorii din memoria noastră.
Prin urmare, această funcție va returna aceste mostre aleatorii.
În regulă, deci hai să intrăm în ea.
O vom numi simplu.
Începem.
Și această funcție are două argumente ca intrare.
Primul, ca obișnuit, obiectul nostru viitor de a relua clasa de memorie și al doilea argument este să încerci
să ghicești.
Ei bine, luăm câteva eșantioane de dimensiuni fixe și, prin urmare, trebuie să alegem o dimensiune pentru eșantioane și mai
precis o numim o dimensiune lot.
Deci asta este numele pe care îl vom da la cea de-a doua dimensiune a lotului de argument.
Și acolo mergem.
Avem cele două argumente și acum putem implementa funcția simplă.
Deci, acum vreau doar să vă avertizez că acest lucru va deveni puțin tehnic, dar voi încerca tot ce pot pentru a-mi explica.
Așa că vom începe prin crearea variabilei de mostre.
Aceasta este doar variabila care va conține eșantioanele memoriei.
Atât de simplu este egal.
Și acum, cum vom obține aceste mostre?
Ei bine, mai întâi de toate trebuie să ne luăm memoria pentru că luăm mostrele din memoria noastră.
Apoi, probabil că vom avea nevoie de dimensiunea lotului, deoarece eșantioanele vor lua în considerare dimensiunea lotului
lui Elon.
Deci, avem nevoie de memorie avem nevoie de dimensiunea lotului și apoi avem nevoie de niște trucuri sau bizoni pentru a obține un
format bun al acestor eșantioane.
Deci, ce voi face eu voi scrie linia de cod și apoi voi explica elementul
după element.
Deci hai sa o facem.
Încep prin a lua o funcție de zip, voi explica foarte curând ce face.
Și în interiorul acestei funcții voi adăuga o stea.
Și eu o voi extinde.
Steaua și gândul aleator Central, atât de aleatoriu, cum probabil ați ghicit, este biblioteca aleatoare pe care am importat-o
​​aici.
Deci, acesta este motivul principal pentru care a trebuit să importăm aceste biblioteci aleatorii pentru că luăm câteva
mostre aleatorii.
Deci, din această bibliotecă aleatorie, vom folosi funcția simplă.
Deci, aceasta este variabilele noastre și aceasta este o funcție, așa că voi adăuga unele paranteze.
Și acum, după cum puteți vedea eșantionul, este o funcție și trebuie să punem câteva argumente astfel încât să puteți
vedea primul argument în sine.
Și de fapt vorbind de sine, acest lucru corespunde memoriei de auto-vorbire, amintirea noului nostru obiect de obiect al memoriei
noastre de reluare pentru noi.
Așa că am să adaug aici sine că amintirea și apoi al doilea argument este așa cum ați fi ghicit
mărimea bechuanei luați în mod aleatoriu din memoria noastră și că i-am dat un nume care este dimensiunea lotului.
Așadar, al doilea argument va fi Bachche nenorocit.
In regula.
Deci linia de cod este tastată și voi explica ce face.
Deci, in primul rand cu aceasta functie simpla punct simpla, luam cateva mostre aleatoare din memoria care
avea o dimensiune fixa de acea dimensiune.
Deci, este de înțeles.
Dar ce înseamnă această funcție a stelei Zipp?
Ei bine, nu există nici un mister despre asta.
Este la fel ca funcția de remodelare.
Deci, de exemplu, voi adăuga un pic veni aici doar pentru a explica că o voi elimina.
De exemplu, să spunem că, de exemplu, avem o listă cu următoarele elemente, de exemplu.
Primele două două.
Și apoi al doilea element.
Patru cinci sase.
Așadar, avem o listă de două dubluri de câte trei elemente câte două, trei patru cinci șase.
Ei bine, dacă aș aplica funcția zip cu steaua pe ea.
Ei bine, ceea ce ar deveni astfel lista de stele Zip va fi egal cu o nouă listă, dar de
o formă diferită și o formă diferită va fi una pentru atunci două trei și apoi cinci șase.
In regula.
Deci asta este exact ceea ce face.
Reformează doar lista ta.
Așa că acum înțelegi ce face această listă de stele Zipp.
Acum, să explicăm de ce a trebuit să facem asta.
Așa cum ați înțeles, vom adăuga evenimentele în memorie și evenimentele au forma.
Mai întâi statul, atunci acțiunea și apoi răsplata.
Dar pentru algoritmul nostru nu vrem acest format dorim ca mostrele să aibă următorul format.
Un format este compus din trei eșantioane un eșantion pentru statele un eșantion pentru acțiuni și un eșantion
pentru recompensă.
De exemplu, să spunem că unul până la trei este unul de acțiune.
Vrem unu și apoi stat la acțiunea doi și am fost bine pentru ceea ce vrem este un lot pentru fiecare
lot pentru statul unu și statul doi.
Unul este un meci pentru acțiunea unu în acțiune două și o treime că pentru că am fost unul și am fost doi.
Acesta este doar formatul care urmează să fie de așteptat pentru că atunci vom înfășura aceste loturi
într-o plăcuță cu un impact oribil, care până acum ne vom aminti este o variabilă care conține atât un tensor cât și
un gradient.
Și asta pentru a putea diferenția în raport cu un tensor să fie capabil să se
diferențieze în raport cu intensul în structura unui tensor îngrozitor și a unui gradient.
Din nou, așa funcționează pistolul Pi.
Așadar, pentru a rezuma, vom crea un lot pentru fiecare dintre acțiunile și recompensele statului și apoi vom pune fiecare
dintre aceste veturi separat în niște octeți pe care Horrible le va avea fiecare un gradient astfel încât
în ​​cele din urmă să putem diferenția fiecare dintre ei.
În regulă, acesta este scopul funcției Zipp.
Permiteți-mi să elimin acest comentariu.
Și acum singurul lucru pe care trebuie să-l facem este să returnați probele.
Așa cum am explicat că nu putem returna probele direct din simplul motiv că vrem
să punem probele într-o formă viabilă.
Deci, pentru a face acest lucru pentru fiecare probă vom folosi funcția de hartă și această funcție
de hartă va face cartografierea de la eșantioane la variabilele de tortură care vor conține un tensor și un gradient.
Deoarece puteți vedea această funcție de hartă, aveți mai multe argumente.
Primul argument este o funcție și această funcție va fi funcția care va converti
mostrele în unele variabile torche.
Iar al doilea argument este ceea ce vrem să aplicăm această funcție.
Așa vor fi argumentele acestei funcții și, prin urmare, ce va fi.
Desigur, vor fi probele.
Deci al doilea argument aici va fi simbolurile.
Dar apoi să definim funcția pe care dorim să o aplicăm.
Fiecare dintre simboluri.
Deci, pentru a defini o funcție aici trebuie să dăm mai întâi un nume funcției care va numi lambda.
Acesta este un nume și dă Lenda apoi X, care va fi variabila acestei funcții.
Deci, este doar un nume și dăruire pentru variabilă și apoi.
Și aici dăm expresia funcției care este ceea ce ne dorim ca această funcție lambda să
se întoarcă și să vadă ce va fi bine ar trebui să fie ceva care ne va transforma mostrele într-o
variabilă torță și să facem acest lucru.
Am menționat deja acest lucru în câteva tutoriale anterioare.
Ei bine, avem funcția voievodă pentru ei.
Vocea va funcționa vom face conversia de la un dansator torță la o variabilă care va conține senzorul
și cea mai mare.
Deci, primul lucru pe care o voi adăuga aici este variabila variabilă în interiorul căreia voi converti
X deoarece X va fi cele simple care vor fi aplicate pe eșantioane.
Dar atunci este doar un ultim lucru tehnic pe care trebuie să-l implementăm este faptul că
pentru fiecare lot care este cuprins în eșantion, de exemplu lotul de acțiuni a
1 8 2 3 și celelalte acțiuni trebuie să-l concatenăm cu respect pentru primul motor care corespunde statelor.
Și de ce trebuie să facem această concatenare.
Doar pentru ca totul să fie bine aliniat.
Asta este faptul că în fiecare rând pentru a declara acțiunea și recompensa corespunde la același timp ..
Așa că în cele din urmă vom obține o listă de loturi bine aliniate și fiecare lot este o plăcere spre Voivod.
Cum putem face această concatenare.
Ei bine, trebuie să folosim funcția de pisică din biblioteca tortei.
Așa că vom adăuga aici torța la care adăugăm că se aplică aplicației X, dar apoi în această funcție
trebuie să specificăm dimensiunea în legătură cu care vrem să facem această concatenare.
Și cum tocmai am menționat, este primul motor care are epoca de indexare.
Și aici mergem avem funcția noastră gata această Lunda care funcția va lua probele concatenate-le în ceea ce
privește primul motor de timp și apoi în cele din urmă vom converti senzorii în
unele torche variabile care conține atât un tensor și un gradient, aplicați pentru a câștiga în sensul
în care vom putea diferenția pentru a avea ponderi de date.
În regulă, această funcție este gata.
Apoi, aici este al doilea argument al funcției hărții.
Trebuie să precizăm la ce vrem să aplicăm această funcție și care este pe toate mostrele noastre.
Vom merge acolo.
Vom aplica această funcție lambda pe toate eșantioanele, astfel încât în ​​cele din urmă să obținem o listă de meciuri în
care fiecare meci este o pistă PI viabilă.
Bine, deci a fost destul de tehnic, dar acum cel puțin totul va funcționa bine.
Vrem să folosim această tehnică.
Apoi, îl folosim aici doar dacă nu doriți să înțelegeți profund detaliile tehnice aici, că
este bine să copiați aceste trei linii de cod, pentru a vă simți ușor memoria dacă doriți să
faceți o inteligență artificială prin torță așa cum doriți.
Dar acum vestea bună este că am terminat cu această reluare a experienței de reluare a memoriei, acum este implementată
și putem trece la clasa următoare și finală, care va fi întregul mod de securitate.
Deci, în acest model, vom avea, desigur, rețeaua noastră care va experimenta reluarea și apoi tot
restul algoritmului de securitate.
Deci va fi o clasă mult mai mare.
Vom face 10 funcții, dar numai pentru că facem acest pas cu pas, astfel încât să puteți
înțelege mai bine ce se întâmplă.
Așa că nu pot să aștept să pună în aplicare modelul nostru de securitate.
Și până atunci.