Ciao e benvenuto in questo tutorial.
Ora abbiamo il cervello di domani.
Abbiamo anche l'ottimizzatore.
Quindi, in pratica, siamo pronti ad addestrare i nostri diversi agenti.
Questo è il nostro diverso cervello.
Quindi è da ora che farà questa grande funzione di treno che conterrà tutto l'algoritmo A3 e quindi quello che
stiamo per implementare in questo treno che ho trovato è solo questa enorme funzione di treno che sarà
solo questa grande funzione di treno nient'altro no classe ma chi userà questa funzione del treno.
E l'ultimo passo di questo modulo con il codice principale.
Quindi eccoci.
Ma prima di iniziare puoi notarlo.
Beh, per prima cosa importiamo alcune librerie in modo che siano le classiche librerie con il modulo torcia.
Intendo dire che la tua libreria torcia termina la libreria per creare l'ambiente che si espanderà.
Quindi, naturalmente, importeremo in realtà le classi del nostro modello.
File questo.
E infine useremo una variabile da TORCIDA.
Mi dispiace di avere gare altamente performanti al gradiente.
Grazie ai grafici dinamici.
E quindi abbiamo questo garantire la funzione di laurea condivisa che non volevo dedicare troppo tempo a questo
perché, in primo luogo, questa è solo una funzione che assicurerà che tutto funzioni correttamente.
Se il modello utilizzato dall'agente non ha alcun gradiente di condivisione.
Questo è il motivo per cui si chiama short grad's shared e l'altra ragione è che non penso che questa
funzione sia necessaria.
e almeno con questo sarà sicuro al 100% che il codice verrà eseguito correttamente ma non è molto importante.
Ma non lo sappiamo mai
Ciò su cui dobbiamo concentrarci è questa funzione di tendenza che tutti stiamo iniziando a fare proprio ora.
Quindi eccoci qui.
Def e il treno diventeranno presto un treno e questa trasformazione richiederà diversi argomenti.
Il primo è rango.
Ho intenzione di spiegare di cosa si tratta e il secondo il secondo è haram in modo che tutti
i parametri siano l'ambiente.
Quindi il terzo parametro sarà condiviso morale.
Quindi sai che il modello condiviso è ciò che l'agente eseguirà la sua piccola esplorazione
su un certo numero di passaggi e infine l'ultimo argomento sarà l'ottimizzatore che è quello che abbiamo creato in precedenza.
Quindi è perfetto per argomenti.
E ora siamo pronti per iniziare ad implementare la stessa funzione.
Quindi la prima cosa che faremo è sapere che ricordi cosa A-380 rappresenta per gli agenti
sincroni attivi di Crilley.
Quindi in 8: 3 vedi c'è un sincrono.
rango qui è solo per spostare il seme in modo che ogni agente di allenamento sia sincronizzato.
Quindi, come hai capito, dobbiamo privare di franchigia ogni agente di addestramento e le diseconomie, quindi useremo il rango per spostare ciascun
lato con questo grado, quindi questo parametro di
Quindi, per esempio se ci sono agenti di addestramento, i ranghi passeranno da 1 a 10 e ci sarà
un numero intero per agente da 1 a 10.
Quindi, quando spostiamo il seme di un thread, tutti i numeri pseudo casuali creati da questo
thread saranno totalmente indipendenti dagli altri thread.
Tuttavia il seme o numeri fissi.
Quindi quando riproduciamo l'esperienza troveremo esattamente gli stessi eventi.
E questo perché è deterministico rispetto al sedile.
Quindi è importante capire che ed è per questo che dobbiamo fare è sincronizzare ogni agente tirocinante usando
il diritto di spostare il seme con il rango.
Quindi facciamo questo per farlo.
Prenderemo la nostra biblioteca di torche.
Quindi otterremo il seed con parentesi manuale con seme di parentesi.
Questa è una funzione e ora prenderemo i semi di tutti gli agenti ai quali
possiamo accedere da quel seme e spostarli per il rango per sincronizzarli.
Ognuno di questi agenti aggiungerà qui più rec e questo sposterà il seed al rango per privarli di ogni agente tirocinante
perché c'è un seme per ogni agenzia di addestramento.
Va bene, prima cosa fatta e ora il prossimo passo è quello di ottenere l'ambiente.
Quindi creeremo una nuova variabile che chiameremo e che ora useremo per creare Atari e
la funzione dal modulo finale per creare l'ambiente per il breakout.
Questo è per ottenere l'ambiente di scoppiare.
Quindi prendiamo questa funzione per creare Terry e ora dobbiamo inserire solo un argomento che sono i
parametri dell'ambiente.
E li abbiamo perché questo è uno degli input della funzione cerebrale.
Questo è questo parametro che sarà i parametri dell'ambiente di breakout
e quindi per ottenere gli ambienti di breakout prendiamo questi argomenti di programma e poi otteniamo un nome che in futuro
è nel prossimo codice con la funzione principale che eseguirà
l'intero codice sarà breakout brachiale visir.
Va bene così che ci ottiene l'ambiente perfetto.
E ora il prossimo passo è allineare la sede dell'ambiente a quella degli agenti.
E perché lo facciamo.
È perché ricorda che ogni agente dell'A-3 Silmaril ha una sua visione dell'ambiente come la
sua copia dell'ambiente e quindi abbiamo bisogno di allineare ciascuno degli agenti su una versione specifica
dell'ambiente e per farlo andiamo utilizzare il sedile perché ogni sedile determina un
ambiente specifico.
Quindi associando un seme diverso a ciascun agente, otterremo esattamente ciò che vogliamo
che ogni agente abbia il proprio ambiente.
E quindi come possiamo fare che possiamo prendere il nostro ambiente allora che poi usare la funzione seme per sapere
scegliere quelli che ottiene per l'ambiente.
E così ora per allineare la sede dell'ambiente al seme dell'agente.
Beh, abbiamo semplicemente bisogno di ottenere questo perché questo corrisponde alla sede dell'agente che ha spostato le cose al
rango per ottenere agenti di addestramento organizzati decenti perché sono tutti su un set diverso.
Quindi dobbiamo solo pagare qui e questo allineerà la sede dell'ambiente a quella
dell'agente. Okay, ora prenderemo il nostro modello.
Questo è il nostro cervello A-3.
E così ora useremo la classe attiva dal nostro file di modello.
di questa classe di attività e chiameremo questo modello di oggetto o cervello, se lo desideri.
Quindi, in pratica, creeremo un nuovo oggetto
Ma fondamentalmente questo oggetto conterrà tutte le convoluzioni del CM La connessione lineare e la funzione
Ford per propagare il segnale.
Quindi in pratica conterrà il cervello dell'attore nel critico con la capacità di propagare il
segnale in tutto il cervello per ottenere l'output finale.
Facciamo così, creiamo il nostro modello così come abbiamo detto che vogliamo chiamare questo modello di oggetto.
E così creiamo un oggetto della classe di creazione Act e quindi prendiamo un critico di attore di classe e ora ricordiamo
quali argomenti quando i due input.
Questo è in realtà gli argomenti della funzione.
Quindi noi dobbiamo inserirlo, sai che è quello che dobbiamo fare per usare l'oggetto nel metodo.
Ma poi gli argomenti che dobbiamo mettere sono nomine che sono in cattive condizioni che si fanno in
catene d'arte nelle immagini stampate e lo spazio reale che contiene conosce l'insieme delle azioni.
Quindi mettiamo questi argomenti nella funzione del treno.
Quindi il primo lo possiamo ottenere con il nostro ambiente e quello e poi usiamo lo spazio di osservazione che
è lo spazio delle osservazioni e poi otteniamo il numero di input che otteniamo zero parentesi.
Tutto ok.
Questo è per gli input.
E ora per lo spazio di azione.
Beh, è ​​quasi la stessa cosa di cui abbiamo bisogno per ottenere dal nostro ambiente che siamo importanti.
E poi lo spazio di azione.
Tutto ok.
E questo ci dà gli argomenti che dobbiamo inserire quando creiamo un oggetto.
Il modello della classe execrate.
OK, ora abbiamo il nostro modello e ora il prossimo passo è preparare i nostri stati di input.
Quindi, ricordiamo che stiamo ancora approfondendo l'apprendimento informale, quindi l'input indica le nostre immagini di input e quindi
questo sarà originariamente fatto da Ray che conterrà un canale perché lavoreremo con immagini in bianco
e nero e avremo tempo in 42 oceani di 42.
Ma è importante capire e tenere presente che gli stati di input sono immagini di input.
Quindi quello che dobbiamo fare è ottenere la non-potenza, quindi la convertiremo in una risposta di tortura.
Ma il primo passo come quello che abbiamo fatto in precedenza è ottenere un arbitro e ottenerlo.
In realtà è abbastanza semplice.
dobbiamo creare una variabile per lo stato di input che attraverserà lo stato e questo per ottenere un array di umpire.
Per prima cosa
Abbiamo semplicemente bisogno di prendere il nostro ambiente e quindi adattarci e quindi utilizzare la funzione di reset.
E questo inizializzerà gli Stati come una serie di dimensioni dell'impero una per 42 per 42.
Uno significa 1 canale, quindi l'immagine in bianco e nero e 42 per 42 è ovviamente la dominanza dell'immagine.
Il numero di pixel e la larghezza e il numero di pixel e l'altezza.
Quindi in pratica è solo l'istanza temporale.
E quelli con cui lavoriamo
questo in realtà, perché questo ci procurerà queste immagini di un'assicurazione del genere in Empire.
E ora ora che abbiamo
Ora possiamo convertirli in torch dancers e per fare questo bene stiamo andando a uno stato dei dati di nuovo perché
non abbiamo bisogno di mantenere gli array di numeri.
Ed è qui che usiamo la torcia per il modulo torcia.
E ricorda che l'abbiamo già fatto con la funzione da una parentesi non-sottolineatura.
E all'interno di questa funzione abbiamo bisogno di inserire la frequenza numerica che vogliamo convertire in un sensore di torcia.
E questo è lo stato in cui la versione precedente dello stato non-pay array diventerà pipeline dalla
funzione pipe un sensore di torcia in modo tale da creare solo uno stato più intenso.
E ora abbiamo solo bisogno di inizializzare il fatto fattibile.
Ricorda che la variabile è generalmente la variabile che dice se un episodio è finito o se il gioco è finito.
Bene, qui vogliamo solo introdurre questo fatto molto bene e inizializzare a true per specificare che questo
Doiv Voivode sarà uguale a true quando il gioco è finito.
Questo sarà utile per dopo in modo che l'IA non giochi indefinitamente per scoppiare.
Tutto ok.
Quindi questo è stato fondamentalmente l'inizio di questa funzione di tendenza con alcune inizializzazioni e alcune cose
che dobbiamo fare.
La parte più importante qui è stata la necessità di escludere ogni agente tirocinante.
Questo è un primo principio dell'A3 simile che dobbiamo applicare.
E ora nel prossimo tutorial procederemo alla sincronizzazione con il modello condiviso.
Non dimentichiamo che esiste un modello diverso ma anche il modello di condivisione che è un modello
condiviso da tutti gli agenti.
E quindi dobbiamo sincronizzarci con il modello di show in modo che ogni agente possa ottenere questo modello condiviso per
procedere a una piccola esplorazione di un certo numero di passaggi.
Questo è quello che faremo nel prossimo Statoil.
E fino ad allora goditi l'intelligenza artificiale.