WEBVTT

00:00.300 --> 00:02.010
Hallo en welkom bij deze tutorial.

00:02.340 --> 00:06.750
Oké, dus vandaag gaan we een functie maken die ons model zal redden, dat wil zeggen dat het brein

00:06.750 --> 00:10.730
van de auto zal worden gered, zodat we het kunnen gebruiken wanneer we de applicatie maken.

00:11.280 --> 00:15.570
Dankzij dezelfde functie kunnen we het model opslaan en vervolgens de applicatie afsluiten.

00:15.780 --> 00:20.340
En als we dan teruggaan naar de applicatie, dingen naar een andere functie, dat is de

00:20.340 --> 00:25.340
laadfunctie die hierna zal worden gemaakt, zullen we de laatste versie van ons model laden dat is getraind.

00:25.680 --> 00:27.300
Dus dat zal heel praktisch zijn.

00:27.300 --> 00:31.500
En laten we daarom van deze twee functies dezelfde functie en de laadfunctie maken.

00:32.100 --> 00:35.000
Dus laten we beginnen met dezelfde functie in deze tutorial.

00:35.360 --> 00:42.570
Dus hier komt een nieuwe def, dan opslaan, en dan is er één argument nodig dat zichzelf zal zijn.

00:42.960 --> 00:49.770
En de reden is dat wat we gaan redden niet het hele model hier is, maar ons neurale

00:50.040 --> 00:54.240
netwerk zelf dat model en onze optimizer zelf die optimizer.

00:54.600 --> 01:00.180
Want wat we willen besparen, zijn alleen de laatste gewichten die bij de laatste iteratie zijn bijgewerkt.

01:00.390 --> 01:06.420
Want wanneer we ons opgeslagen model later opnieuw willen gebruiken, wilden we de actie voorspellen om te spelen met de

01:06.420 --> 01:08.570
gewichten die we al hebben getraind.

01:09.000 --> 01:13.140
Dus we moeten deze laatste versie van het gewicht nemen en we moeten ook de laatste versie van

01:13.140 --> 01:15.770
de optimizer nemen omdat deze is verbonden met deze gewichten.

01:16.710 --> 01:17.790
Dus laten we dit doen.

01:17.790 --> 01:19.230
We hebben onszelf.

01:19.230 --> 01:24.630
Dus we zullen onszelf kunnen nemen, dat model en onszelf die optimizer, en we zullen deze

01:24.630 --> 01:26.790
twee objecten opslaan in een Python-woordenboek.

01:27.030 --> 01:31.940
En om deze twee objecten op te slaan, gaan we dezelfde functie van de toortsmodule gebruiken.

01:32.310 --> 01:39.360
Dus ik begin hier met Tahj die opslaat en tussen haakjes gaan we dat woordenboek invoeren.

01:39.840 --> 01:42.660
Brackett's en een woordenboek in Python werken zo.

01:42.660 --> 01:45.330
Je hebt een sleutel, dat is je identificatie.

01:45.480 --> 01:46.350
Dus dat is uniek.

01:46.650 --> 01:49.460
En voor elk jaar heb je de waarde die je aan die sleutel wilt geven.

01:49.740 --> 01:56.580
Het is dus als een mapping-functie van unieke identifiers naar een waarde die je aan deze identifiers wilt geven.

01:56.740 --> 02:03.300
Als je een eenvoudig woordenboekboek neemt, nou, de sleutels zouden de woorden zijn en de waarden zouden de definities van

02:03.300 --> 02:04.410
de woorden zijn.

02:04.710 --> 02:05.820
Nou, hier is dat hetzelfde.

02:06.150 --> 02:12.240
We gaan twee sleutels maken, één sleutel voor het eerste object dat we willen opslaan, dat zelf dat model is.

02:12.360 --> 02:17.490
En een tweede sleutel voor het tweede dat we willen redden, dat is onszelf, die optimizer.

02:17.700 --> 02:19.950
En laten we daarom beginnen met de eerste sleutel.

02:20.260 --> 02:26.220
Dus we moeten die sleutel een naam geven en ik noem het state en dit kerndictaat, want dan zul je zien dat

02:26.220 --> 02:31.250
ik de functie state dict ga gebruiken om ons model in het woordenboek op te slaan .

02:31.590 --> 02:37.730
Dus dat is onze eerste sleutel om de waarde te geven die we aan die dartel willen toeschrijven.

02:38.040 --> 02:41.760
Nou, zoals je kunt zien, heb ik hier en hier een kleine column toegevoegd.

02:41.760 --> 02:44.450
Ik ga het object toevoegen, het object dat ik wil opslaan.

02:44.850 --> 02:53.220
Dus het eerste object dat ik wil opslaan is zelf dat model, dus we kunnen dit zelf dat model kopiëren en plakken als de

02:53.430 --> 02:56.340
waarde van ons eerste sleutelzelf, dat model.

02:56.730 --> 03:00.310
Dan voegen we die staat toe, onderstrepen dict.

03:00.330 --> 03:06.630
Hier gaan we, de eerste en dan voegen we enkele haakjes toe en dat zal de parameters van uw model

03:06.630 --> 03:09.150
opslaan in dit eerste dictaat van de sleutelstatus.

03:09.780 --> 03:11.910
En laten we nu zeggen onze optimizer.

03:12.210 --> 03:14.970
Dus we gaan een tweede sleutel toevoegen aan het woordenboek.

03:15.330 --> 03:21.780
En om dit te doen, zijn we hier gekomen en druk dan op enter en daar gaan we met onze tweede sleutel naar de tweede sleutel, we

03:21.780 --> 03:22.670
gaan het noemen.

03:23.010 --> 03:25.080
Nou, we kunnen het optimalisatie noemen.

03:26.010 --> 03:32.460
Dan Colin, en dan hoeven we alleen maar de naam toe te voegen van het object dat we willen opslaan, en dat is zelf,

03:33.240 --> 03:34.380
dat is onze optimizer.

03:34.650 --> 03:38.210
Dus we houden ons aan die optimizer.

03:39.030 --> 03:45.270
En nogmaals, om de parameters van deze optimizer op te slaan, zijn we hier weer, die staat DECT en daar gaan

03:45.270 --> 03:45.810
we.

03:45.810 --> 03:51.420
We hebben ons model opgeslagen met al het bespaarde gewicht en onze optimizers opgeslagen.

03:51.960 --> 03:52.560
Perfect.

03:53.010 --> 03:56.160
En dan zullen we dit alles opslaan in een bestand.

03:56.340 --> 04:02.880
En om dit te doen, ga ik een tweede argument toevoegen aan de opslagfunctie, wat de naam zal zijn van

04:02.880 --> 04:07.120
dit bestand waar we ons model in onze geoptimaliseerde staat willen hebben.

04:07.530 --> 04:12.630
Dus onthoud, ik liet je een korte demo zien in het eerste deel van deze eerste module, zelfrijdende auto.

04:12.960 --> 04:16.260
Weet je, dat was een demo waar we gewoon wat willekeurige acties hadden.

04:16.470 --> 04:18.350
Dat was dus nog geen zelfrijdende auto.

04:18.600 --> 04:22.050
Maar bedenk dan dat ik op de knop Opslaan heb geklikt om het model op te slaan.

04:22.230 --> 04:29.030
En dit creëerde het laatste brein dat bestand, het bestand dat de opgeslagen versie van je model bevat.

04:29.400 --> 04:39.090
Dus ik ga hier het laatste onderstrepingsteken toevoegen, breng dat naar voren zodat je model en je optimalisatieprogramma in

04:39.090 --> 04:41.700
dit gemaakte bestand worden opgeslagen.

04:41.730 --> 04:44.550
Laten we dat naar buiten brengen, zodat je het nog niet hebt.

04:44.670 --> 04:50.400
Maar zodra u uw model opslaat in de applicatie, wordt dit bestand aangemaakt dankzij deze code die we zojuist

04:50.400 --> 04:51.020
hebben toegevoegd.

04:51.510 --> 04:52.070
Oke.

04:52.080 --> 04:53.690
En dus nu perfect.

04:53.700 --> 04:59.160
We hebben een veilige functie die uw model zal redden, het brein van uw auto zal redden door het gewicht te besparen

04:59.160 --> 05:03.220
en de optimizer van het neurale netwerk dat in feite het brein van de auto is.

05:03.810 --> 05:04.620
Zo perfect.

05:04.650 --> 05:07.740
We hoeven nu nog maar één functie te creëren.

05:08.130 --> 05:09.390
Dat is de laadfunctie.

05:09.750 --> 05:12.920
En dat komt omdat dezelfde functie nooit zonder een laadfunctie gaat.

05:13.170 --> 05:17.390
Weet je, het heeft geen zin om je model op te slaan als je niet kunt laden wat je daarna opslaat.

05:17.700 --> 05:20.580
Dus dat is de laatste stap in onze reis voor de spannende demo.

05:20.760 --> 05:24.690
En we zullen deze belasting laten functioneren in de laatste twee Toyota-secties.

05:25.050 --> 05:26.760
Dus ik zie je hierin naast zwoegen.

05:26.760 --> 05:28.380
En tot die tijd, geniet van I.
