Cześć i witamy w tym samouczku.
Gratuluję jeszcze raz za to, że z tym skończyłem.
Widzimy, że zrobiliśmy to, że stworzyliśmy mózgi, a my je szkoliliśmy.
Ale teraz musimy stworzyć agenta testowego, który w ogóle nie będzie jutro, ale po
prostu użyje modelu akcji do własnych poszukiwań.
I oczywiście w tym kodzie nagrywamy kilka filmów, a oni będą agentami testowymi
wideo z pewnym wynikiem.
Przejdźmy więc przez ten kod.
Najważniejsze jest to, ponieważ powiedziałem, że nie będziemy kodować linii po linii, ale myślę, że
ważne jest, abyście zrozumieli, co się tutaj dzieje.
Tak więc, jak zauważyłeś, idziemy z tym kodem w pierwszej sekcji.
Importujemy biblioteki, a następnie znaleźliśmy tę funkcję testową, która sprawi, że ten agent testowy wykona własną eksplorację
i zagra w grę typu breakout.
Tak więc ta funkcja testowa pobiera trzy argumenty, pierwszą jest ranking, który wciąż ma zsynchronizować testowanego
agenta, tak jak zrobiliśmy to dla agentów szkoleniowych.
Mamy oczywiście nasze parametry, ponieważ potrzebujesz ich.
I oczywiście mamy model współdzielony, ponieważ ten agent testowy użyje wspólnego modelu do
własnych poszukiwań.
W porządku, wchodzimy do funkcji i ten wiersz kodu synchronizujemy z agentem testowym.
Dokładnie tak jak wcześniej, importujemy środowisko.
Przypominam więc, że w głównym kodzie, który będzie w następnym samouczku.
Cóż, a nazwa tutaj zostanie zastąpiona przerwą zerową, abyśmy mogli przejść do środowiska zerowego zerowego i
zagrać w grę oraz Trumans Czerwonego Krzyża, którzy otrzymają filmy z naszego wieczornego wyjścia.
Więc w sumie ta linia kodu w sumie oznacza, że uruchamiamy jedno środowisko z wideo.
Następnie w następnym wierszu kodu synchronizujemy to środowisko, tak dokładnie z tą samą zasadą, co funkcja Trend.
Następnie dostajemy nasz model i w tym celu tworzymy obiekt klasy aktywności i umieszczamy kształt wejściowy za
pomocą naszej przestrzeni obserwacji środowiska, a zera kształtu są dokładnie takie same jak funkcja pociągu
i nasze wyniki, które są działaniami z przestrzenią działania.
Tak dokładnie jak wcześniej, coś nowego tutaj, odkąd skończyliśmy szkolenie.
Nie chcemy wprowadzać modelu w tryb pociągu, ponieważ po prostu nie chcemy go ćwiczyć,
chcemy go rozwijać.
I to właśnie robimy tutaj z modelem, który ewoluował.
Jest to po prostu ustawienie agenta testowego w trybie, który w zasadzie przetestuje
testowaną wydajność.
W tym momencie otrzymujemy stany wejściowe, które są wejściowymi obrazami z gry, które w tym momencie stanowią
cały wyścig.
Potem przekształcamy ich w tancerzy pochodni.
Tutaj zainicjujemy niektóre z tych słów.
Inicjujemy do wersji true.
Tak więc wciąż tak jak ostatnio, a potem znowu coś nowego, wprowadzamy tę trzecią z użyciem funkcji czasu
do pomiaru czasu obliczeń.
A to dlatego, że chcesz uzyskać punkt wyjścia.
W tym przypadku używamy bardzo praktycznego typu wskazówki, która pozwala dodać element do cue z prawej
lub lewej strony.
To bardzo praktyczne i dam ci referencję, którą myślę w dekrementowanej wersji kodu.
Spójrz więc na to, co to jest "skasowanie" i to właśnie pozwala to zrobić.
Następnie zainicjalizujemy długość odcinka o wartości zero, a następnie zwiększamy rozmiar w
tej pętli.
Używamy tutaj tej samej sztuczki.
Prawda i pętla zwiększają długość epizodu o jeden.
Kiedy gra jest skończona, gdy gra się kończy, przeładowujemy ostatni zestaw modelu współdzielonego, model udostępniania, który jest
datowany przez inne modele.
Pamiętaj, że wspólny model nie jest już wtedy datowany.
Nadal, jeśli gra się skończy, jeśli gra się skończy, my Reinette ponownie zainicjujemy stany komórek, zobaczmy
X, a następnie Stany H x, a jeśli gra nie jest zbyt dobrze, zachowamy te same stany komórek i stany.
Ale aby upewnić się, że są one nauczane zmienne, tak aby mogły być dołączone do gradientu.
OK, więc to jest coś, co już nie żyjemy w funkcji trendu, a następnie nadal w pętli while i
po danych, które stwierdza w ukrytych stanach właściwą drogę, w zależności od dwóch przypadków tutaj.
Co robimy? Dostajemy prognozy jutra.
Dokładnie to robimy tutaj z tą linią kodu.
Otrzymujemy więc wartość, która jest wynikiem wartości krytycznej rzeczywistej wartości, która jest wynikiem działania aktora.
A potem wszystkie ukryte stany H x i komórka stwierdzi X, a następnie generujemy rozkład
prawdopodobieństw działań, które mają tutaj wartość akcji wartości Q.
I robimy to z następną funkcją.
I oczywiście nie potrzebujemy tutaj prawdopodobieństw szczęścia, ponieważ jest to tylko szkolenie dla
agenta testowego.
Po prostu zagrają w akcje, które po prostu wykorzystamy, wiesz, jak zagrać w określoną grę, ale nie
robimy tutaj żadnego treningu.
Tak więc mamy tylko rekwizyt i od tego odgrywamy akcję, biorąc bezpośrednio do RMX tych prawdopodobieństw, to
znaczy, że to działanie ma największe prawdopodobieństwo.
Powodem jest to, że agent testowy nie wykonuje żadnych eksploracji.
Pamiętaj, że chcemy mieć szansę na podjęcie pewnych działań, które mają niskie prawdopodobieństwo, gdy
chcesz zrobić eksplorację tych innych działań i wiesz, że nie podejmujesz za
każdym razem akcji, która ma największe prawdopodobieństwo, ale tutaj agent testowy może wykonać dowolną eksplorację
i dlatego właśnie bezpośrednio podejmujemy akcję, która ma maksymalne prawdopodobieństwo, gdy raz wykonamy akcję, osiągniemy następny
stan i otrzymamy kolejne słowo.
I to jest dzień, kiedy gra się kończy.
Tak więc otrzymujemy to wszystko za pomocą tej linii kodu, grając w akcję po wybraniu jej tutaj z
naszym Maxem.
Więc gramy tutaj i otrzymujemy stan, w którym otrzymujemy nagrodę i zrobiliśmy to ponownie, a potem, odkąd dostaliśmy
nową nagrodę. Zamierzamy zaktualizować część nagrody, po prostu dodając to nowe słowo.
I w końcu, gdy gra jest skończona.
Jeśli więc oznacza to, że gra jest skończona, kiedy skończę grać dobrze, wydrukujemy
wyniki z czasem przeciwnym.
Chcieliśmy, aby długość odcinka była długa.
Świetna gra i tak właśnie drukujemy wszystkie te zmienne za pomocą tych drobnych sztuczek.
To na czas, kiedy chcemy, żeby to była tylko zmienna.
Niektóre słowa i idee są długością obecnego czasu.
A kiedy już wydrukowaliśmy wszystkie wyniki, od zakończenia gry i chcemy rozpocząć nową grę,
zamierzamy ponownie zainicjować wszystko.
Jest to suma dwóch słów zero długości epizodu do zera.
Zamierzamy odtworzyć wszystkie czynności, używając tej funkcji klawiszy, która resetuje znane
obrazy wejściowe, powtarzając wszystkie przerwy.
I w końcu wykorzystujemy ten czas, aby spać 60 sekund, aby zrobić przerwę minutową, aby pozwolić innym agentom
ćwiczyć.
A jeśli gra się skończy.
DOBRZE.
I wreszcie mamy ostatnią linię kodu, która dostarczy nam nowego stanu, a następnie możemy iść do przodu.
Możemy kontynuować w tej nowej grze.
Więc idziemy.
To jest funkcja testu.
Rzeczy, w których zobaczysz filmy w jednym lub dwóch samouczkach.
Mam nadzieję, że po raz ostatni będziecie oglądać wyniki, które są z wami.
Kurialny i ja, to będzie dobra zabawa.
I mówię ci.
Spodziewaj się dobrych wyników.
Pamiętaj jednak, że ta gra była bardzo trudna.
Myśleliśmy, że to prosta gra, aby zagrać jako pierwsza, ale w ogóle nie.
Okazało się to znacznie trudniejsze niż doom.
I dlatego umieściliśmy to w ostatnim module.
Ale w każdym razie, zróbmy tę główną funkcję w następnym samouczku.
To samo nie jest tutaj najważniejsze.
Teraz, gdy A-380 jest obłąkany, nie będziemy go kodować wiersz po wierszu, to rozszerzy kod i bardzo
szybko otrzymamy wyniki.
Do tego czasu ciesz się AI.