WEBVTT

00:00.530 --> 00:02.950
Cześć i witamy w tutorialu Python.

00:02.990 --> 00:08.520
Teraz kolejnym krokiem jest sprawienie, aby funkcja zliczania neuronów zapewniła nam to, czego chcemy.

00:08.540 --> 00:14.130
To jest liczba neuronów w tym ogromnym wektorze po zastosowaniu zwojów.

00:14.300 --> 00:19.640
To jedyne brakujące informacje, których teraz potrzebujemy, a my otrzymamy je z funkcją.

00:19.700 --> 00:23.930
Zróbmy więc tę funkcję, którą będziemy nazywać liczeniem.

00:24.280 --> 00:27.570
A te neurony rdzeniowe bardzo prosto.

00:27.830 --> 00:32.220
I jaka jest funkcja zliczania neuronów jako argumentów.

00:32.510 --> 00:39.450
Cóż, zabierze obiekt sam, ale wtedy zajmie coś innego, ponieważ ta liczba neuronów wyjściowych

00:39.450 --> 00:44.540
w warstwie spłaszczającej faktycznie zależy tylko od jednej rzeczy.

00:44.660 --> 00:50.840
To zależy od dominacji oryginalnego obrazu wejściowego, który pojawia się na samym początku

00:50.840 --> 00:51.930
sieci neuronowej.

00:52.160 --> 00:58.370
A więc jedynym argumentem, który potrzebujemy teraz, jest fakt, że czas wspomina o taktowaniu obrazów wejściowych.

00:58.370 --> 01:03.410
Dlatego podajmy nazwę tego argumentu reprezentującego diament i obraz wejściowy.

01:03.520 --> 01:06.790
I nazwiemy to zdjęciem.

01:07.220 --> 01:07.690
W porządku.

01:07.850 --> 01:14.720
Mogę wam teraz powiedzieć, że rzeczywiste wymiary wejściowych obrazów pochodzących z Dume wynoszą

01:14.720 --> 01:16.850
80 na 80.

01:16.850 --> 01:23.330
Zamierzamy zmniejszyć rozmiar oryginalnych obrazów do 80 na 80 i będzie to format

01:23.390 --> 01:26.270
obrazów przesyłanych do sieci neuronowej.

01:26.270 --> 01:32.300
Więc ich obraz będzie faktycznie jednym 80 80, a ten odpowiada temu, że pracujemy

01:32.300 --> 01:33.750
z czarno-białymi obrazami.

01:33.830 --> 01:41.040
To jest tylko z jednym kanałem, więc ich zdjęcie będzie skorelowane z całkowitą liczbą osiemdziesięciu i osiemdziesięciu.

01:41.280 --> 01:41.560
W porządku.

01:41.560 --> 01:43.590
To jedyny argument, którego potrzebujemy.

01:43.660 --> 01:45.670
A teraz zeskanujmy neurony.

01:45.850 --> 01:47.280
Jak zamierzasz to zrobić?

01:47.500 --> 01:51.110
Po pierwsze właściwie nie mamy żadnego obrazu wejściowego.

01:51.250 --> 01:54.070
Nie mamy żadnego obrazu zagłady, który moglibyśmy zaimportować.

01:54.070 --> 01:55.330
Zrobimy to później.

01:55.540 --> 02:01.240
Pierwszą rzeczą, którą musimy zrobić, jest stworzenie fałszywego obrazu, ale zrobiliśmy introny 80 na 80.

02:01.240 --> 02:06.160
Zamierzamy stworzyć ten fałszywy obraz z fałszywymi pikselami, a to da nam

02:06.160 --> 02:12.280
ostatecznie żądaną liczbę, ponieważ liczba ta zależy tylko od wymiarów, a nie od pikseli znajdujących się

02:12.280 --> 02:13.320
wewnątrz obrazów.

02:13.330 --> 02:15.640
To po prostu tworzy fałszywy obraz, aby rozpocząć.

02:15.730 --> 02:18.520
Następnie obliczymy liczbę neuronów, które chcemy.

02:18.520 --> 02:23.860
Więc sztuczka polegająca na stworzeniu fałszywego obrazu jest dobrze nazwana x.

02:23.890 --> 02:30.700
Przede wszystkim zamierzaliśmy użyć latarki Rand, ponieważ wiesz, że będziemy umieszczać losowe piksele w tych

02:30.700 --> 02:37.200
obrazach, z których korzystamy z losowych funkcji z torche, które jest funkcją rand.

02:37.250 --> 02:42.740
Następnie w środku będziemy wprowadzać, jak widać potępienia obrazów.

02:42.850 --> 02:44.400
To jest jeden 80 80.

02:44.560 --> 02:50.500
Ale ponieważ zamierzamy umieścić ten obraz w sieci neuronowej i jak pamiętacie, sieć neuronowa może

02:50.500 --> 02:55.170
przyjmować tylko partie stanów wejściowych, które są tutaj partiami obrazów wejściowych.

02:55.370 --> 03:00.600
Zamierzamy stworzyć fałszywe diamenty, w których możemy bezpośrednio wykonać tę funkcję.

03:00.670 --> 03:05.720
W rzeczywistości zaczynamy od tego, który będzie odpowiadał partii, a

03:05.730 --> 03:11.070
następnie możemy po prostu wstawić wszystkie 188 odpowiadające dominacjom obrazu wejściowego.

03:11.110 --> 03:16.980
I jak zrozumieliście, te nominacje są zawarte w tym obrazie ich argumentem, który reprezentuje

03:16.980 --> 03:19.330
tę tabelę 1 80 80.

03:19.420 --> 03:23.290
Musimy więc tylko dodać im obraz.

03:23.620 --> 03:29.410
Ale aby przekazać elementy stołu, ponieważ wiesz teraz, że ich obraz jest

03:29.410 --> 03:31.940
podwójny jako lista argumentów funkcji.

03:32.020 --> 03:39.460
Musimy tu dodać, zanim pojawi się ich obraz, zanim sklep Apple pozwoli sklepowi przekazać elementy

03:39.550 --> 03:44.100
obrazu do Apple jako listę argumentów dla funkcji.

03:44.170 --> 03:49.600
I jak widać, dokładnie to jest określone tutaj ze sklepem i diamentem.

03:49.930 --> 03:56.640
W porządku, aby stworzyć obraz fałszywych pikseli, które nie będą miały nic wspólnego z obrazami.

03:56.800 --> 04:01.720
Ale znowu będziemy w stanie uzyskać ostatnią liczbę neuronów, a

04:01.720 --> 04:11.080
teraz ostatnią rzeczą, którą powinniśmy zrobić, to przekonwertować ten wektor wejściowy na zmienną pochodni, ponieważ będzie to miało miejsce

04:11.380 --> 04:13.060
w sieci neuronowej.

04:13.060 --> 04:13.380
W porządku.

04:13.390 --> 04:20.650
To teraz reprezentuje obraz wejściowy losowych pikseli, który właśnie został przekształcony w realną i która teraz przejdzie

04:20.650 --> 04:22.440
do sieci neuronowej.

04:22.570 --> 04:28.330
A dokładniej warstwy splotowe sieci neuronowej, ponieważ ponieważ potrzebujemy tylko

04:28.330 --> 04:34.100
liczby neuronów po zastosowaniu zwojów, po prostu podejdziemy do zwojów 3.

04:34.210 --> 04:36.440
Aż do trzeciej warstwy splotowej.

04:36.580 --> 04:39.630
I nie wejdziemy tutaj w dwa pełne połączenia.

04:39.850 --> 04:45.490
A to dlatego, że liczba neuronów, które chcemy, jest pomiędzy splotem 3 a f. c 1.

04:45.520 --> 04:52.120
W porządku, więc teraz, gdy mamy jeden obraz wejściowy z odpowiednimi wskazówkami, czas na propagowanie tego

04:52.180 --> 04:58.330
obrazu do sieci neuronowej, aby dotrzeć do warstwy spłaszczającej, a następnie dostaniemy neurony w

04:58.330 --> 05:03.850
spłaszczonej warstwie, a otrzymamy informacje, których potrzebujemy, to liczba neuronów w tej spłaszczonej

05:03.850 --> 05:04.750
warstwie.

05:04.990 --> 05:08.950
Teraz musimy zrobić dokładnie to, co robimy w funkcji forward.

05:08.950 --> 05:14.560
Musimy propagować sygnały do sieci neuronowej, ale tylko w warstwach splotowych, aż dotrzemy

05:14.560 --> 05:16.120
do warstwy powodziowej.

05:16.330 --> 05:17.360
Zróbmy to.

05:17.360 --> 05:25.660
Zamierzamy zaktualizować x teraz x jest obrazem wejściowym, a przy drugim X tutaj X stanie się dobrze pierwszą

05:25.660 --> 05:27.050
warstwą splotu.

05:27.310 --> 05:32.930
A teraz, co musimy zrobić, to te trzy kroki, które są pierwszym krokiem do zastosowania dekonwolucji do

05:32.950 --> 05:33.790
obrazów wejściowych.

05:33.850 --> 05:40.960
Następnie w drugim etapie stosujemy przycinanie miksów do zawiłych obrazów i wstawiamy, że aktywujemy neurony

05:40.960 --> 05:48.160
w tym pokręconym, zawiłym obrazie, a x stanie się tym pierwszym splotem, z którego składają się

05:48.160 --> 05:50.590
wszystkie te spęczniałe Energis.

05:51.010 --> 05:56.840
Zróbmy więc pierwszy krok, stosując pierwszy splot splotu do obrazów wejściowych.

05:57.040 --> 06:07.540
Więc to, co robimy, polega na tym, że używamy splotu jako "self", który łączymy z Lucianem, który używamy, i stosujemy go do naszych obrazów wejściowych,

06:07.550 --> 06:11.360
które do tej pory są reprezentowane przez x.

06:11.500 --> 06:14.290
To pierwszy raz pierwszy.

06:14.320 --> 06:22.630
Drugi krok zamierzamy zastosować do buforowania naszych zawiłych obrazów zwróconych przez splot, gdy X i dwa momenty

06:22.640 --> 06:26.880
kulminacyjne Cóż, zamierzamy przyjąć funkcję z modułu funkcjonalnego.

06:26.920 --> 06:34.610
Więc robimy skrót, a potem użyjemy funkcji Max pool do D.

06:34.810 --> 06:42.340
To jest to, w którym umieściliśmy splot własny jeden X w nawiasie maksymalnego przyciągania, ponieważ gramy

06:42.360 --> 06:45.220
dalej wciągamy w zawiłe obrazy.

06:45.750 --> 06:53.140
Ale ta następna funkcja pobiera dodatkowe argumenty, które są po pierwsze wielkością jądra.

06:53.190 --> 06:59.190
Więc znowu jest to rozmiar okna przesuwającego się po twoich obrazach, który zajmie maksimum pikseli

06:59.190 --> 07:00.710
w każdym slajdzie.

07:00.830 --> 07:06.750
Tak więc nadal będzie wykrywać te funkcje, ponieważ funkcje są powiązane z wysoką wartością pikseli

07:06.840 --> 07:07.750
w tablicach.

07:07.890 --> 07:09.580
Jak mówisz, wykłady intuicyjne.

07:09.780 --> 07:14.020
Zatem ta pierwsza udokumentowana ludzka potrzeba wprowadzenia to rozmiar jądra.

07:14.100 --> 07:15.560
I weźmiemy trzy.

07:15.660 --> 07:17.650
To powszechny wybór dla rozmiaru jądra.

07:17.940 --> 07:25.200
A potem musimy powiedzieć o krokach, ile pikseli będzie się przesuwać w obrazach.

07:25.200 --> 07:27.560
I zamierzamy zrobić krok dwóch.

07:27.610 --> 07:29.400
Znowu to powszechny wybór.

07:29.820 --> 07:30.670
Więc idziemy.

07:30.690 --> 07:32.530
Teraz robi się drugi krok.

07:32.620 --> 07:38.910
A teraz przejdźmy do trzeciego kroku, który polega na aktywowaniu wszystkich neuronów w tej puli i zawiłych

07:38.910 --> 07:39.580
obrazach.

07:39.610 --> 07:46.090
I ta pierwsza warstwa splotu i aby to zrobić ponownie, zastosujemy do tego funkcję.

07:46.170 --> 07:51.960
I tak tutaj i biorąc ponownie, ponieważ mamy zamiar podjąć inną funkcję, która, jak można

07:52.050 --> 07:55.170
się domyślić, będzie funkcją aktywującą, ale która.

07:55.230 --> 08:01.410
Jak zwykle będzie to poprawiona funkcja aktywacji i być może pamiętasz nazwę

08:01.620 --> 08:02.330
naprawdę.

08:02.790 --> 08:03.410
No to jedziemy.

08:03.450 --> 08:04.290
To ten.

08:04.290 --> 08:12.540
I tak naprawdę stosujemy się do naszych połączonych zawiłych obrazów, to wszystko.

08:12.540 --> 08:12.940
W porządku.

08:12.990 --> 08:14.270
I to wszystko.

08:14.370 --> 08:15.320
Wykonano trzy kroki.

08:15.330 --> 08:16.370
To było bardzo szybkie.

08:16.500 --> 08:23.460
Pamiętajmy więc, że musimy na to spojrzeć, najpierw używamy splotu do naszych obrazów wejściowych, a następnie

08:23.460 --> 08:28.830
stosujemy ciągnięcie Maxa do naszych zawiłych obrazów uzyskanych za pomocą splotu.

08:28.950 --> 08:35.730
A następnie aktywujemy neurony w całej tej splotowej warstwie basenowej za pomocą funkcji

08:35.730 --> 08:43.960
aktywacji prostownika, tak perfekcyjnie otrzymujemy naszą pierwszą warstwę splotową, na której nastąpiło kulminacja i w której

08:44.050 --> 08:46.200
neurony są teraz aktywowane.

08:46.260 --> 08:51.640
I tak właściwie to, co robi, to propaguje sygnały z pierwszej warstwy splotowej

08:51.640 --> 08:52.500
do następnej.

08:52.630 --> 08:56.580
A mówiąc o następnym, właśnie to zajmiemy się teraz.

08:56.570 --> 09:01.660
Zrobimy to samo, co właśnie zrobiliśmy na pierwszym splotu tam z

09:01.660 --> 09:08.170
drugą warstwą splotową, aby ponownie rozprzestrzenić sygnały dalej w sieci neuronowej poprzez aktywację neuronów

09:08.170 --> 09:09.660
drugiej warstwy splotowej.

09:09.850 --> 09:12.910
Ale zanim to zrobimy, musimy zdobyć tę splotową warstwę.

09:13.120 --> 09:18.330
I tak zastosujemy splot do X, który jest teraz pierwszą warstwą splotu.

09:18.460 --> 09:24.070
Cóż, zamierzamy zastosować splot na 2 x, aby uzyskać drugą warstwę splotową, po której Max będzie

09:24.070 --> 09:25.120
ją ciągnąć.

09:25.240 --> 09:27.860
A potem w końcu aktywując Sirata.

09:27.970 --> 09:29.070
Zróbmy to.

09:29.170 --> 09:35.350
W rzeczywistości bardzo łatwo jest to skopiować i wkleić poniżej.

09:35.350 --> 09:39.240
Teraz oczywiście musimy również zastąpić splot za pomocą splotu.

09:39.520 --> 09:40.460
I oto idziemy.

09:40.480 --> 09:43.650
To naprawdę gotowe, widzisz bardzo łatwe.

09:43.900 --> 09:50.200
A teraz tą linią propagujemy sygnały z drugiego splotu tam na następny, który

09:50.260 --> 09:52.580
będzie tam trzecim splotem.

09:52.720 --> 09:57.220
I aby uzyskać tę trzecią, sprowokowaną wolę, trzeba będzie ją ponownie zastosować.

09:57.220 --> 10:04.630
Więc kopiuję to wklejanie poniżej i zastępuję splot za pomocą splotu 3 i to nie jest

10:04.870 --> 10:06.340
tak praktyczne.

10:06.340 --> 10:11.490
Propagujemy sygnały w trzech splotowych literach w świetle latarki.

10:11.500 --> 10:13.100
Dzięki tej niesamowitej strukturze.

10:14.020 --> 10:15.340
W porządku, więc idealnie.

10:15.340 --> 10:21.250
Teraz nasze sygnały propagują się do trzeciej warstwy splotowej i później.

10:21.360 --> 10:24.780
A mówienie o tym później prowadzi nas do tego, czego szukamy.

10:24.820 --> 10:28.510
To, co nas interesuje, to spłaszczenie tam.

10:28.510 --> 10:33.620
W porządku, więc teraz, kiedy mamy tu trzeci splot, to jest ostatnie X tutaj.

10:33.790 --> 10:36.120
Nadszedł czas, aby nasze spłaszczenia się.

10:36.490 --> 10:37.990
I właśnie to zamierzamy zrobić.

10:37.990 --> 10:44.200
Teraz zamierzamy spłaszczyć wszystkie piksele tej trzeciej splotowej warstwy, że zamierzamy pobrać

10:44.290 --> 10:48.430
wszystkie piksele ze wszystkich kanałów trzeciej splotowej warstwy.

10:48.640 --> 10:51.920
Zamierzamy je umieścić jeden po drugim w wielkim wektorze.

10:52.150 --> 10:56.920
I oczywiście ten wielki wektor będzie niczym innym jak warstwą

10:56.920 --> 11:02.000
spłaszczającą, a jednocześnie użyjemy sztuczki, aby uzyskać liczbę neuronów w tym spłaszczeniu.

11:02.070 --> 11:03.790
Tego właśnie szukamy.

11:03.790 --> 11:09.370
To liczba neuronów, których nam brakuje i dlatego zwracajmy bezpośrednio to, czego oczekujemy, a

11:09.370 --> 11:15.130
w tym powrocie spłaszczemy trzecią warstwę splotową i otrzymamy taką samą liczbę neuronów w tej

11:15.130 --> 11:16.330
spłaszczonej warstwie.

11:16.630 --> 11:20.150
Więc weźmiemy X. który jest naszym trzecim splotem.

11:20.320 --> 11:25.150
Przejmiemy wszystkie kanały trzeciego splotu i użyjemy funkcji, która

11:25.150 --> 11:32.160
jest funkcją wielkości, aby spłaszczyć wszystkie piksele ze wszystkich kanałów w jednym wielkim wektorze.

11:32.230 --> 11:35.930
A więc sztuczka, którą możesz znaleźć w pumie, obejrzyj trud.

11:36.130 --> 11:42.400
Najpierw przyjmujemy dane X, ponieważ X jest specjalną strukturą, wiesz, że jest wodzem latarki, więc

11:42.400 --> 11:44.250
ma dość złożoną strukturę.

11:44.320 --> 11:51.920
Ale najpierw musimy uzyskać do niego dostęp za pomocą danych, a następnie musimy zobaczyć, co jest w środku.

11:52.090 --> 11:57.700
Używamy tej funkcji widoku i teraz musimy uzyskać dostęp do tego, czego szukamy,

11:57.700 --> 12:01.980
i to nawet z argumentami 1 i minus 1.

12:02.230 --> 12:04.390
Musisz zrozumieć, co jest w strukturze.

12:04.510 --> 12:10.060
Ale możesz po prostu zrozumieć, że w ten sposób otrzymamy tę liczbę neuronów, a

12:10.150 --> 12:15.560
następnie, aby zakończyć, musimy dodać rozmiar w nawiasach i wejściach wewnętrznych 1.

12:15.880 --> 12:21.610
Więc w zasadzie to, co robimy tutaj, robimy, to bierzemy wszystkie piksele ze wszystkich kanałów i umieszczamy

12:21.610 --> 12:27.180
je jeden po drugim w tym ogromnym wektorze, który będzie wejściem do w pełni połączonej sieci.

12:27.190 --> 12:29.250
Zasadniczo to rozmiar.

12:29.410 --> 12:34.060
I dzięki temu możemy uzyskać taką liczbę nowych, których szukamy.

12:34.060 --> 12:36.460
W porządku, więc teraz dostajemy to, czego chcemy.

12:36.490 --> 12:44.350
I tak w końcu możemy zastąpić neurony liczbowe tym, co jest zwracane przez tę funkcję, gdy

12:44.530 --> 12:47.400
jest stosowane do formatu obrazów.

12:47.440 --> 12:50.140
To jest o 80 na 80.

12:50.170 --> 13:00.040
Musimy teraz zastąpić neurony liczbowe, przyjmując funkcję zliczania neuronów, którą stosujemy

13:00.250 --> 13:09.040
do formatu obrazów, które będą całkowitymi 80 i 80.

13:09.460 --> 13:10.400
I oto idziemy.

13:10.510 --> 13:17.140
I oczywiście nie zapominamy o sobie, ponieważ Count neuron jest w rzeczywistości metodą testu CNN.

13:17.170 --> 13:18.490
Więc musimy dodać.

13:18.700 --> 13:21.190
A teraz ostrzeżenie powinno zniknąć.

13:21.190 --> 13:22.540
I oto idziemy.

13:22.540 --> 13:23.890
Teraz wszystko jest dobrze.

13:23.980 --> 13:29.930
Otrzymujemy architekturę sieci neuronowej, w której nic nie brakuje i mamy tę funkcję liczników,

13:30.140 --> 13:35.290
jeśli wiesz, że chcesz wypróbować inne architektury i nie chcesz ręcznie liczyć

13:35.290 --> 13:36.210
liczby neuronów.

13:36.340 --> 13:39.940
Po prostu używaj tej funkcji, którą odtwarzasz, do formatu twoich obrazów.

13:40.180 --> 13:42.130
A to dostarczy ci bezpośrednio tego, czego chcesz.

13:42.130 --> 13:45.810
Jest to liczba neuronów w warstwie powodziowej bez konieczności wykonywania jakichkolwiek czynności.

13:45.820 --> 13:49.450
I wszędzie, gdzie architektura jest krytyczna.

13:49.480 --> 13:57.040
A teraz kończymy pierwszy ważny krok tego mózgu, który robimy i mamy ostatni

13:57.040 --> 13:57.720
krok.

13:57.790 --> 14:02.500
Jest to ostatnia funkcja, która ma być główną funkcją naprzód.

14:02.590 --> 14:07.730
Więc będziemy propagować sygnały od początku mózgu, które jest od oczu

14:07.730 --> 14:12.160
do warstwy wyjściowej, która jest po drugim połączeniu.

14:12.460 --> 14:15.850
Zrobimy to w ciągu następnych dwóch zajęć i do tego czasu nasza sztuczna inteligencja.
