‫Hoe spannend is dit geheel, we hebben een lange weg afgelegd van vechten om onze afbeeldingen en standpunten, onze labels
‫in tijden te krijgen, onze dag voorbereiden bij het kiezen van een model op tensorflow-hub, het creëren van modelcallbacks.
‫We zijn eindelijk in het stadium waarin we klaar zijn om ons eerste deep learning-model te trainen, dus laten
‫we een koerstraining maken, een model.
‫Nu gaan we een subset van gegevens invoeren, want als je je herinnert wanneer we
‫onze gegevens opsplitsten, gaan we pas beginnen met trainen op 1000 afbeeldingen, want waarom willen we dat doen?
‫Dus laten we hier zijn, ons eerste model gaat alleen trainen op duizend afbeeldingen om er zeker van te zijn dat alles
‫werkt.
‫Dus dat is wat we proberen te doen.
‫We proberen onze tijd tussen experimenten te minimaliseren.
‫Dus we beginnen met een subset van de gegevens om er zeker van te zijn dat al deze code, ik bedoel, kan breken.
‫Rechts.
‫We willen er dus zeker van zijn dat het werkt voordat we een lange tijd trainen op 10000
‫afbeeldingen, want trainen op duizend afbeeldingen gaat veel sneller dan 10000 afbeeldingen.
‫En je zou je kunnen voorstellen dat hetzelfde geldt als je het verhoogt tot 100000 afbeeldingen of in het geval van afbeelding
‫netto veertien komma twee miljoen.
‫Er is dus nog een variabele die we moeten definiëren voordat we een model kunnen trainen, en dat is
‫het aantal tijdperken.
‫En dus is het aantal tijdperken hoeveel passages van de gegevens we willen dat ons model doet.
‫En een pas is, je kunt je voorstellen, gelijk aan ons model, patronen proberen te vinden in elke hondenafbeelding en
‫zien welke patronen betrekking hebben op elk label.
‫Laten we verder gaan naar hier nu tijdperken.
‫Is gelijk aan honderd en we gaan hier iets cools doen, we gaan een
‫kleine schuifregelaar maken zoals we die voor Harran hadden.
‫En dan gaan we een type slider maken en dan zijn de mannen 10, de Macs 100, en dan kan de stap
‫10 zijn.
‫Moet je zien.
‫Hoe cool is dat?
‫Dus als we 10 tijdperken wilden doen, zouden we er 10 kunnen doen.
‫Maar we houden het op 100 omdat we onze callback voor het vroegtijdig stoppen hebben en we gaan
‫dit allemaal zo in actie zien.
‫Maar in wezen, wat een trainingspas gaat doen als we teruggaan naar onze Keano, zou één
‫tijdperk ons model een enkele kans geven om naar alle trainingsgegevens te kijken en het vervolgens van hun te valideren.
‫100 tijdperken, dus we geven ons model tot 100 kansen om de trainingsgegevensset te doorlopen en de patronen
‫te achterhalen.
‫Dus het gaat naar wat passeert, het gaat door deze lagen.
‫We gaan onze trainingsbeelden doorgeven aan ons model.
‫Het gaat door deze lagen heen.
‫En dan gaat ons model, terwijl het patronen leert, raden welk label bij welke afbeelding
‫hoort.
‫En hoe slechter de gok is, hoe hoger het verlies zal zijn.
‫Dus dat is waar Adam binnenkomt.
‫Vergeet niet dat die kerel onderaan de heuvel bij de International Hill Dissent Championships ons
‫model vertelt hoe het zijn gissingen met elk tijdperk kan verbeteren.
‫En dan gaan we kijken hoe ons model het doet op een nauwkeurig niveau, want we hebben
‫die toeschouwer-rechter onderaan de heuvel die kijkt hoe goed ons model presteert.
‫Dus nogmaals, als dit allemaal niet klopt, wordt het logischer als we eenmaal een model
‫gaan gebruiken.
‫Dus laten we nog een laatste controle doen.
‫De laatste controle is een laatste keer om er zeker van te zijn dat we een GPU gebruiken, want als we geen GPU gebruiken,
‫zal deze training van ons model op afbeeldingen heel, heel lang duren.
‫Je zag meteen aan het begin dat een GPU onze code tot 30 keer en soms meer kan versnellen.
‫Laten we die code schrijven.
‫Controleer of we nog steeds op een GPU werken die zo vast staat.
‫GPU.
‫Beschikbaar, en dan gaan we.
‫Ja.
‫Als T. F. config, niet in de laatste plaats fysieke apparaten.
‫En dan willen we G controleren. P. A. anders niet beschikbaar, dus dit is gewoon dezelfde code die we hierboven schreven.
‫Maar we hebben een GPU nodig om dit in een aanzienlijke hoeveelheid tijd te kunnen draaien.
‫Ja, we hadden hier ook kunnen kijken.
‫Onthoud, dat is een korte truc, maar ik vind het heerlijk om deze afdruk hier nu te zeggen.
‫Boem, we hebben een G. P. A. draait, we hebben een aantal tijdperken ingesteld,
‫laten we een eenvoudige functie maken die een model traint.
‫Dus laten we dat hier goed doen.
‫Laten we een functie maken die een model traint en de functie gaat een model maken met behulp van model maken.
‫En dan willen we een tiende board callback gaan opzetten.
‫Gebruik onze voortaan functie, dus creëer.
‫Kijk, hier is het creëren van functies voor ons echt van pas gekomen.
‫Anders zouden we ad hoc code moeten schrijven.
‫Maar het schrijven van functies duurt in het begin iets langer, maar op de lange termijn bespaart het ons tijd.
‫Dus bel de functie op ons model, het ontleden van de trainingsgegevens, validatiegegevens.
‫Een aantal tijdperken om voor te trainen.
‫Wat nu een doos is.
‫We rechtvaardigen dat met onze zieke kleine schuifregelaar en de kovács, die onze hulpfuncties zijn die we zouden willen
‫gebruiken, en als we uiteindelijk willen dat het het model teruggeeft, gaan we dit veranderen in afwaardering.
‫Dat ziet er fenomenaal uit.
‫Oké, laten we hierheen gaan.
‫Er was een functie om een getraind model te trainen en terug te sturen.
‫Dus hier zijn we goed opgeleid.
‫Ik kan niet geloven dat we hier eindelijk aan toe zijn.
‫Dit is geweldig.
‫We trainen ons eerste Deep Learning en know netwerk.
‫Treinen krijgen dus een model en geven de getrainde versie terug.
‫Lekker simpel.
‫Onthoud dat ook al raken we opgewonden, dit niet betekent dat we onze communicatieve gewoonten verliezen, dus we
‫zullen een model maken.
‫Dus we gaan model is gelijk aan, laten we zeggen, dit is waar onze functie model maken binnenkomt.
‫O ja.
‫Dat is zo bevredigend om te schrijven.
‫En dan gaan we elke keer dat we een model trainen een nieuwe bordsessie maken.
‫Want onthoud, met ons Tensas-bord, met ons Tensas-bord terugbellen, zijn we eigenlijk gewoon Estancia
‫Board.
‫We hebben die callback die we onze functie hebben ingesteld niet nodig.
‫Dus als we hier terugkomen elke keer dat het wordt aangeroepen, zal het een nieuwe map in de logs maken met de
‫huidige datum en tijd.
‫Dit is dus belangrijk, want elke keer dat we onze treinmodelfuncties uitvoeren, dus elke keer dat
‫we proberen een nieuw model te trainen, een nieuw experiment, maken we een logmap, waarin we de prestaties van ons model
‫kunnen volgen.
‫Dus dat is later erg handig als we proberen te evalueren welk experiment het beter deed dan het
‫andere.
‫En dan gaan we het model aanpassen aan de gegevens die worden doorgegeven bij de callbacks die we hebben gemaakt.
‫Nogmaals, er is waarschijnlijk een betere manier om deze functie uit te voeren, maar we proberen het zo te maken
‫dat het werkt.
‫En dan kunnen we teruggaan nadat we de fase van het voor het eerst passen van een model ongeveer hebben
‫doorlopen en het verfijnen.
‫Laten we gaan model om te passen en we gaan het doorgeven.
‫X is gelijk aan de treingegevens, wat een gegevensbatch is, als u het zich herinnert, die de afbeeldingen en labels bevat.
‫Dus tijdperken zullen Naameh-tijdperken zijn, a. k. A. hoe vaak mag ons model de trainingsgegevens
‫bekijken voordat het stopt?
‫Of hoeveel kansen had ons model om de hele trainingsdataset te passeren om patronen te vinden en
‫vervolgens de validatiegegevens?
‫Hij gaat geldige gegevens zijn, wat ook een databundel is, of databatch, sorry, en de validatiefrequentie is
‫hoe vaak we de patronen willen testen die ons model op onze validatieset heeft gevonden.
‫En we hebben het op één gezet omdat we willen dat het zijn patronen test die het in de
‫trainingsset op de validatiegegevens elk tijdperk vindt.
‫Dus zodra een tijdperk en dan zijn onze callbacks aan boord van Bordewich, hebben we zojuist hierboven gemaakt
‫met onze functie en vroeg stoppen met whoof.
‫En dan willen we het model nog een beetje terugzetten.
‫Retourneer het gemonteerde model.
‫Hoe gaaf is dat en nu kunnen we ons model aanpassen aan de data.
‫Waarom zo simpel als gaan.
‫Model, ECLSS, treinmodel.
‫Je ziet de voordelen in het maken van functies, zodat we deze functie kunnen uitvoeren nadat we later een aantal
‫verschillende experimenten hebben gedaan.
‫En ben je er nu klaar voor?
‫Een kleinigheidje hier.
‫Wanneer een model voor de eerste keer wordt getraind, met name op afbeeldingsgegevens of
‫andere grootschalige gegevens, duurt het eerste tijdperk meestal het langst in vergelijking met de rest.
‫Dit komt omdat de functies die we hebben geschreven de gegevens ophalen en deze zijn geïnitialiseerd.
‫Dus een. k. A. het laden van de gegevens in het geheugen van onze GPU.
‫Nu duurt het gebruik van meer gegevens over het algemeen langer, daarom zijn we begonnen met duizend afbeeldingen
‫en zo na het eerste tijdperk.
‫Juist, we hebben het zo ingesteld dat het maximaal 100 is, de eerste kan een paar minuten duren
‫na de eerste airpark, de daaropvolgende APOC duurt maar een paar seconden.
‫Dus je bent klaar.
‫We gaan dit samen doen.
‫Vingers kruisten al onze functies, want dit hangt eigenlijk af van een flink aantal regels code
‫hier.
‫Laten we zeggen, als het drie tegen één werkt.
‫Kijk naar dat gebouw, een model met mobiel net V2.
‫Ik heb mijn vingers gekruist.
‫Ik hoop dat jij dat ook doet.
‫Oh ja, het begint.
‫Kijk, daar gaan we, tijdperk één van de 100.
‫Omdat box is ingesteld op 100.
‫Het gaat dus om 25 stappen te trainen, wat onze batchgrootte betekent, dus als we gaan, hebben we 800 afbeeldingen in onze trainingsset, want
‫onthoud, we zijn begonnen met duizend.
‫Dus als we dat delen door 32, krijgen we vijfentwintig.
‫Daarom bestaat training uit vijfentwintig stappen, omdat er batchgrootte tweeëndertig en validatie is.
‫Als we naar tweehonderd gedeeld door tweeëndertig gaan, wordt het naar boven afgerond.
‫Dus het is afgerond op zeven.
‫Daarom hebben we validatie.
‫Dus 200 afbeeldingen over een bachelor is 30 tot.
‫En bekijk dit eens.
‫Daar gaan we.
‫Ongeveer vijf minuten, en dit is waar ik het over heb met het verlies, dus nu al deze dingen
‫die we hier hebben gecreëerd, dus het verlies.
‫Ons doel is dus om het verlies te minimaliseren.
‫Omdat we op de top van de heuvel zijn, we hoogtevrees hebben, we willen naar de onderkant
‫van de heuvel, wil je de verliesfunctie minimaliseren?
‫Het verlies is de hoogte van de heuvel.
‫We komen hier beneden.
‫Dus hopelijk daalt dit aantal, maar we willen de nauwkeurigheid maximaliseren.
‫Dus zo zullen we weten of ons model aan het trainen is of niet, of het leerpatronen zijn, dit verlies zou
‫naar beneden moeten gaan, deze nauwkeurigheid zou omhoog moeten gaan.
‫Dit gaat dus een paar minuten duren om door het eerste tijdperk te komen.
‫Ik ga wachten tot het door het eerste tijdperk is gegaan en dan zal ik deze video versnellen en dan zie ik
‫je zodra het voorbij het eerste tijdperk is, omdat je hierna volgende tijdperken zult zien.
‫Dus tijdperk twee van de 100 zal behoorlijk snel zijn omdat we een GPU gebruiken.
‫De enige reden waarom de eerste een tijdje duurt, is omdat het al die afbeeldingen in het GPU-geheugen moet
‫laden.
‫Ik zie je vrijwel onmiddellijk, maar voor mij duurt het ongeveer drie minuten.
‫Goed, ik ben terug.
‫Dus we hebben hier een ETA, wat staat voor geschatte aankomsttijd, is ongeveer 12 seconden over in
‫dit eerste tijdperk, zolang alles volgens plan verloopt.
‫En zo kun je zien dat het verlies iets is afgenomen en de nauwkeurigheid is toegenomen.
‫Dit is dus een goede zaak.
‫Nu, wat we aan het einde van dit eerste tijdperk zouden moeten zien, als we correct afrekenen, zouden we moeten zeggen dat
‫dit verloren gaat op de trainingsset en nauwkeurigheid op de trainingsset.
‫We zouden nu elk moment het verlies van de validatiegegevens en de nauwkeurigheid van de validatieset moeten zien verschijnen.
‫Dus we wachten maar af.
‫Dus wat het nu waarschijnlijk doet, is dat het iets langer dan 12 seconden is geweest,
‫maar het laadt de validatiegegevens in het geheugen zodat het kan berekenen en evalueren hoe het presteert op die dataset.
‫Ik kan niet geloven dat we dit doen, we zijn als een model samen in realtime.
‫Dit is fenomenaal.
‫Ik heb dit nooit eerder gedaan.
‫Dat is zolang je code werkt.
‫Daar gaan we.
‫Moet je zien.
‫Dus nu hebben we dit waar we het niet over hebben, we hebben deze statistiek op de trainingsgegevens en deze
‫statistiek op de validatie.
‫Kijk dus hoe snel onze nauwkeurigheid verbetert.
‫Nu, ik heb je gezegd dat tijdperken sneller zullen gaan.
‫Moet je zien.
‫De eerste duurde ongeveer vijf minuten, maar deze duren vijf seconden.
‫We zijn al op een punt nul nauwkeurigheid.
‫Dat is 100 procent nauwkeurigheid op de trainingsgegevens.
‫Dat is krankzinnig.
‫Dit vertelt ons eigenlijk dat het een goede zaak is dat ons model overfit is, omdat
‫het veel beter presteert op de trainingsgegevens dan op de validatiegegevens.
‫Maar dit is geweldig, ons model werkt, het vindt patronen, het gebruikt wat het mobiele net V2
‫heeft geleerd en het beeldnet en past het toe op onze honden.
‫Dataset hondenvisie komt tot leven van zo stoate.
‫Ik hoop dat die van jou ook zo loopt, want we trainen samen een model in realtime.
‫Dit is mooi.
‫Dus wat we zouden moeten zien, is dat zodra de validatienauwkeurigheid niet meer verbetert voor een aantal tijdperken,
‫dus, drie, vanwege onze vroege stopzetting van terugbellen, het gaat stoppen met trainen.
‫Dus eigenlijk denk ik niet dat we de 100 tijdperken zullen bereiken, misschien niet eens in de buurt, want
‫kijk hier krijgen we een nauwkeurigheid van één punt nul met een klein verlies aan onze trainingsgegevens.
‫Hier gaan we.
‫Het is gestopt.
‫Mijn hart klopt heel snel.
‫Dat was fenomenaal, dus ik zeg wat ik bedoelde, het eerste tijdperk duurt een tijdje omdat het
‫gegevens in het geheugen laadt zodra het is geladen, die eerste gegevens in het geheugen, de GPU
‫gaat gewoon weg, oké, tijd om op de gas en zal de naverbranders of gas inschakelen.
‫Geen remmen, schat.
‫We bereikten dus 18 van de 100 tijdperken.
‫En we kunnen zien dat ons model op onze trainingsgegevensset met 100 procent nauwkeurigheid presteert.
‫Dat is best gek.
‫1. 0.
‫Je moet dit aantal keren met 100.
‫Het verlies is vrij laag.
‫Ik bedoel, een verlies van nul is perfect.
‫Maar we kunnen zien dat ons model overfit is omdat het veel beter presteert op de
‫trainingsgegevens dan op de validatiegegevens.
‫Dus als we terugkomen, is het alsof ons model het cursusmateriaal uit het hoofd heeft geleerd in plaats van de
‫probleemoplossende principes van dat cursusmateriaal.
‫En het heeft moeite om zich aan te passen aan een dataset die het nog niet eerder heeft gezien, oftewel een oefenexamen of onze
‫validatieset.
‫Dus op dit moment heeft ons model een slecht vermogen om te generaliseren.
‫Dus dat was denk ik genoeg voor één video.
‫Dat is een hoop opwinding.
‫Wat ik wil dat je een beetje huiswerk doet, is voordat we de bordlogboeken in de volgende video
‫gaan bekijken, omdat we onze Tenzer-bordoproep al eerder hebben gebruikt.
‫Ik wil dat je nagaat of dit een vraag is, dit is een heel belangrijke vraag nadat we hebben geprobeerd te modelleren.
‫Ik wil dat je gaat vragen.
‫Het lijkt erop dat ons model te veel voedt omdat het presteert.
‫Veel beter op de trainingsdataset dan op de validatiedataset.
‫Wat zijn enkele manieren om overfitting van modellen in deep learning, de neurale netwerken, te voorkomen?
‫Dus we maken er een knockdown van.
‫Dat is een vraag die ik wil dat je opzoekt voordat we naar de volgende video gaan. Wat zijn enkele manieren om te voorkomen dat
‫een model overbelast en diep bekende netwerken bevat?
‫Dus controleer dat, zelfs als u er niet zeker van bent.
‫Ik wil gewoon dat je nieuwsgierig begint te worden naar wat er aan de hand is, en ik
‫wil dat je stopt met het oppikken van de aanwijzingen over wanneer je model overfit is, zoals veel beter presteren op
‫de trainingsdataset dan op de validatiedataset.
‫En een kleine opmerking hier, noot overfitting om mee te beginnen is een goede zaak.
‫Het betekent dat ons model aan het leren is.
‫Dus ik ben fenomenaal opgewonden dat we zojuist ons eerste deep learning neurale netwerk samen hebben
‫getraind met behulp van transfer learning. Dog vision komt tot leven.
‫Dus we zijn klaar met het trainen van een model, in ieder geval een eerste subset van een model.
‫Dit staat niet op de volledige gegevens.
‫Dit is alleen op duizend afbeeldingen.
‫Dus onze volgende stap is om als we in onze keynote komen, wat zijn we van plan?
‫Dus passen we het model aan de data aan.
‫We hebben nog geen voorspelling gedaan.
‫Dus wat we zouden kunnen doen, is het model evalueren met behulp van onze tensorboard-callbacks, zodat je dat kunt zien.
‫En dan gaan we uitzoeken hoe we een voorspelling kunnen doen met ons getrainde model.
‫Klinkt als een plan.
‫Dus bekijk deze vraag en ik zie je in de volgende video.