Ciao e benvenuto a questa storia quasi il titolo finale di questo modulo.
Sto solo andando a spiegare il codice principale che eseguirà il tutto prima di ottenere risultati
entusiasmanti e guardare i video.
Quindi questo è il codice principale e come puoi vedere è piuttosto breve.
Iniziamo importando le librerie e i moduli e anche le diverse classi e funzioni che
abbiamo creato come Altikriti dal nostro file di modello.
La funzione treno dal file del treno e la funzione di test dal file di test e,
naturalmente, importiamo il nostro ottimizzatore.
Quindi iniziamo con la prima sezione in cui entriamo in una classe tutti i parametri.
E questo è forse questo.
Ricorda che questo è l'oggetto BRAM che abbiamo creato da questa classe di harams.
Ogni volta che otteniamo un parametro come il tasso di apprendimento di cui non siamo fuori.
Quindi analizziamoli rapidamente.
Questo primo o qui è i tassi di apprendimento.
Quindi come puoi vedere scegliamo un piccolo e tu consideri che il secondo è il parametro.
Ancora una volta lo prendiamo come 0. parametro OneTel un insieme di 1 16 processi 20 passi e lunghezza massima di 10000.
39 prendiamo un
E abbiamo detto che questo è il parametro che impostiamo per assicurarci che l'agente non rimanga bloccato indefinitamente
in uno stato dell'ambiente, quindi questo fermerà il gioco.
Se la lunghezza dell'episodio supera questa lunghezza massima e, ovviamente, otteniamo il nome del
nostro ambiente.
La rottura è zero.
E dal modo in cui puoi giocare anche su altri ambienti semplicemente cambiando il nome dell'ambiente
qui.
Quindi se vuoi giocare ad altre versioni di breakout o anche ad altri giochi di Atari, puoi
semplicemente sostituire questa rottura di zero qui con altri giochi.
Ma posso dirti che il video di breakout è già molto impegnativo.
Va bene così tutti i parametri qui.
E poi c'è il codice principale per la corsa principale.
E così qui vediamo cosa facciamo in questa prima riga.
Impostiamo un thread per core.
otterrà l'inizializzazione di tutti questi parametri qui perché ci sono variabili associate a questo oggetto BRAMs.
Quindi nella seconda riga otterremo tutti i renderer sapendo di creare un nuovo oggetto della classe
Paramjit che
Quindi impostiamo il seme.
Quindi otteniamo il nostro ambiente utilizzando l'albero Create e funzioniamo con il nome del nostro ambiente che si
trova a zero.
Vedete le celle che nominano e quindi parametro e nome sono piuttosto zero.
In modo che ci ottenga l'ambiente di scoppiare.
il solito modo di creare un ambiente, ma sai migliorare l'intero processo e migliorare le prestazioni.
E dal modo in cui questo non è
Bene, lo usiamo per creare effettivamente un ambiente ottimizzato e questo facciamo ciò che l'universo dell'universo è
un pacchetto che viene fornito con tutti i pacchetti installati su open engine.
Bene grazie all'universo otteniamo un ambiente ottimizzato.
Questo è tutto qui.
Quindi otteniamo il nostro modello condiviso creando un oggetto della classe critica attiva.
E quindi qui è importante capire che questo modello condiviso è il modello condiviso dai
diversi agenti.
Quindi abbiamo diversi thread in corso diverso.
E parlando di minacce nella riga successiva, qui il modello arruffato che condivide la memoria, quello che facciamo è archiviare il
modello nella memoria condivisa del computer in modo che tutti i thread possano accedervi anche se si
trovano in un percorso diverso.
Quindi questo è quello che facciamo qui.
Questo per abilitare questo, quindi il nostro ottimizzatore viene collegato ai parametri del nostro modello condiviso e con un
tasso di apprendimento di un punto o uno.
memoria condivisa in modo che tutti gli agenti possano accedervi per ottimizzare il modello.
E ancora una volta è importante capire che l'ottimizzatore è anche condiviso perché agirà sul modello condiviso e
dicendo che la riga successiva ottimizza la memoria condivisa che memorizziamo l'ottimizzatore nella
Quindi inizializziamo i nostri processi in modo che il processo di test non aggiorni il modello condiviso ma lo utilizza solo
per provarlo in una parte e stampare il punteggio e registrare i video.
Questo è esattamente ciò che viene fatto qui con il test Target equals.
Questo è il processo di test e questo processo qui è tagliato dalla tortura che multi pre-elaborazione.
Quindi qui e quello che fa è che fondamentalmente esegue una funzione su un thread indipendente.
Quindi, quando riavviamo, iniziamo un nuovo processo che è stato l'anno scorso l'anno scorso.
E poi con questo processo per aggiungere P aggiungiamo il processo nella lista dei processi.
Infine, in questo ciclo, eseguiamo semplicemente un ciclo per eseguire tutti gli altri processi che verranno
addestrati aggiornando il modello condiviso.
E questo è fondamentalmente ciò che accade nelle ultime righe di codice qui.
Quindi, se non vuoi entrare nei dettagli, la cosa importante da capire è che questo eseguirà
i processi in modo ottimale e quindi dovremmo essere tutti bravi a eseguire questo codice e
ad avere un modello addestrato e infine guardare i risultati.
Quindi non vedo l'ora di farlo.
Sarà molto eccitante.
Cercherò di trovare le persone ora in modo che possiamo vederle tutte insieme.
E così fino alla prossima volta