‫Dus nu hebben we een volledig getraind model op de volledige trainingsdataset, a. k. A. 10000 afbeeldingen, want als we
‫naar X.
‫Ik heb 10000 afbeeldingen en labels. Laten we nu ons volledig getrainde model gebruiken om wat voorspellingen te doen.
‫Op de testdataset, die ook zo'n 10000 afbeeldingen bevat, zal dat zo eens worden bekeken.
‫Maar laten we naar Kagle gaan en kijken hoe.
‫Ze willen dat onze voorspellingen er zo uitzien als een indieningsbestand voor elke afbeelding in de testset, je moet de waarschijnlijkheid
‫voorspellen voor elk van de verschillende rassen.
‫Het bestand moet een koptekst bevatten en de volgende indeling hebben.
‫Dus we hebben Idei hondenras één nodig.
‫Ik ga niet eens doen alsof ik dat nog een keer ga proberen uit te spreken.
‫Afghaanse windhond, Yorkshire terriër.
‫En dan de voorspellingskansen voor al die.
‫Oke.
‫Nu staat er Multiclass lang verloren.
‫Dat is slechts de voorspelling.
‫Kansen voor elk hondenras.
‫Maak nog een koptekstsectie door voorspellingen te doen over de testgegevensset.
‫Ik wil dat je even nadenkt voordat we de code doornemen.
‫Wat moesten we doen om ons model te trainen op de trainingsbeelden?
‫Nogmaals, doe alsof dit data-agnostisch is, met welke data je ook werkt, of het nu tekst of audio of afbeeldingen
‫of video is of iets dergelijks, wat is onze rol voordat we het kunnen gebruiken met een machine learning-model?
‫Of in ons geval een deep learning geen netwerk.
‫We moeten het omzetten in getallen, dus dat is wat we moeten doen, exact hetzelfde gegevenstype waarop ons
‫model is getraind.
‫Dus de gegevens komen overeen met de gegevensbatch van afbeeldingen die we nodig hebben om een van die van de testafbeeldingen te maken,
‫zodat we voorspellingen kunnen doen over die afbeeldingen.
‫Dus we schrijven onszelf een kleine opmerking, aangezien ons model is getraind op afbeeldingen in de vorm van tientallen
‫batches.
‫Om voorspellingen te doen op de testgegevens.
‫We zullen het in hetzelfde formaat moeten krijgen, dus als we terugkomen op onze afbeelding en keynote.
‫Weet je nog hoe ik altijd zei dat we ons concentreren op de invoer, onze gegevens in de juiste vorm
‫krijgen voor ons machine learning-algoritme en er vervolgens voor zorgen dat de uitvoer correct is?
‫Daar richten we ons in het begin op.
‫Dit is bij ons al op grote schaal doorgevoerd.
‫Naarmate we dieper en dieper gaan, naarmate je in andere projecten komt, wil je hier misschien in
‫duiken.
‫Maar voorlopig en voor het benaderen van je eerste projecten zoals we nu doen, zul je
‫gefocust zijn op input en output.
‫Nu, een klein weetje hier is, nogmaals, onze functies komen van pas, gelukkig hebben we eerder create data
‫patches gemaakt, die een lijst met bestandsnamen als belangrijk kunnen beschouwen. Als je het niet meer weet, ga dan
‫terug naar waar we creëren databatches en zet ze om in tientallen batches.
‫Dus welke stappen moeten we doen om voorspellingen te doen op de testgegevens?
‫Laten we die opschrijven om voorspellingen te doen over de testgegevens.
‫Nou, dit is ongeveer wat ik doe met veel van mijn projecten, gewoon tegen mezelf praten, mezelf er
‫doorheen leren, de rubberen ducky-techniek.
‫Dus pak de testafbeelding, bestandsnamen waarbij we een klein lijstbegrip moeten schrijven zoals we eerder hebben gedaan om
‫toegang te krijgen tot de test, doorloop alle bestanden hier en sla de bestandsnamen op in een soort
‫lijst.
‫Ja, dat kunnen we doen en dan moeten we de bestandsnamen converteren naar testgegevensbatches met behulp van
‫gegevensbatches maken.
‫En instelling.
‫De testgegevens, onthoud hoe we parameters hebben gemaakt om gegevensbatches te maken, als u dat niet doet, is dat goed.
‫We gaan zien in een tweede parameter voor waar, want waarom?
‫Wat is er anders aan onze testgegevens dan aan onze trainingsgegevens?
‫Er zijn geen labels met de testgegevens.
‫Dus omdat de testgegevens geen labels hebben en we uiteindelijk een voorspelling doen, zijn de voorspellingen juist
‫door de testgegevensbatches door te geven aan de voorspelling.
‫Methode riep ons model op, we hebben daar drie stappen, maar we kunnen ze doen, we kunnen ze één voor één
‫aanpakken.
‫Zullen we beginnen met de eerste?
‫Dat is vrij logisch.
‫Laad bestandsnamen van testafbeeldingen.
‫Wat zouden we kunnen doen?
‫We zouden bestandsnamen kunnen gaan testen, mooie en simpele gelijken, eigenlijk zouden we het testpad kunnen opzetten.
‫Wat als we dat testpad evenaren.
‫En we kopiëren het gewoon hier om ons te redden, door het twee keer uit te voeren.
‫Pad kopiëren.
‫Dat is een kleine handige tip, dat kun je doen en plakken, we hebben geen inhoud nodig.
‫We kunnen het daar gewoon houden als we dat willen, maar ik ga het verwijderen, dus het
‫is consistent met de andere delen die we hebben en ik ga dit hier plaatsen.
‫Dus dat is mijn pad naar de testmap.
‫Dus nu gaan we een kleine lijst maken voor begrip is gelijk aan testpad
‫plus F-naam bestandsnaam voor F-naam in onze lijst dur testpad.
‫We hebben dit eerder gezien toen we de originele namen van trainingsbestanden maakten, maar laten we onszelf eraan herinneren wat
‫het doet.
‫Dus onze lijst gaat gewoon door een lijstdirectory.
‫Daar is het een afkorting voor, gewoon zeggen, hey, Python, geef me alle bestandsnamen in deze map.
‫En dan maken we een lijst die het testpad toevoegt, wat inhoudt dat dit alles
‫het testpad plus elke afzonderlijke bestandsnaam optelt.
‫De test stem op.
‫Laten we eens kijken, als u twijfelt, voer de code uit.
‫Prachtig.
‫Dus nu hebben we de bestandsnamen voor onze testgegevens.
‫Dat kunnen we eraf halen.
‫Koop onze groene tech-emoji, dit notitieboekje zal er tegen het einde mee gevuld zijn.
‫Oké, nu hebben we het.
‫Wat is onze volgende stap?
‫Converteer de bestandsnamen naar testgegevensbatches met behulp van gegevensbatches maken.
‫Oh, ik zei daten daar.
‫Dat is verkeerd.
‫En we gaan het repareren.
‫Laten we eerst een beetje de lengte van onze testtelefoon controleren en kijken hoeveel afbeeldingen we hebben.
‫Tienduizend driehonderd zevenenvijftig.
‫Prachtig.
‫Dus om nu een gegevensbatch te maken, is het vrij eenvoudig.
‫We brengen gewoon onze functie binnen, we gaan gegevens testen, we zullen hier een opmerking schrijven voordat we beginnen.
‫Maak dus een batch met testgegevens.
‫En we gaan databatches maken als het weet waar we het over hebben en dan gaan
‫we de testbestandsnamen doorgeven.
‫En we gaan ook zien dat er data-enquêtes zijn, dus we gaan testen of data gelijk is aan waar.
‫En dat gaan we uitvoeren.
‫Prachtig.
‫We krijgen een kleine afdruk waarin staat dat we testgegevens maken, batches, zo'n geweldige functie die we hebben geschreven, laten
‫we hierheen komen en er nog eens naar kijken, en onze gegevens in batches veranderen.
‫Dus we hebben een functie, maak een databatch of creëer databatches.
‫En wat doet het als het testgegevens zijn, wat het is, het drukt deze
‫kleine verklaring af en dan gaat het, hey, verander onze bestandsnamen in tijden en gebruik dan van 10 tot plakjes om het om te
‫zetten in een tensor-gegevensset en maak dan een gegevensbatch door de procesafbeeldingsfunctie in kaart te brengen.
‫Houd er rekening mee dat we het get-afbeeldingslabel niet doorgeven aan de testgegevensset, omdat er geen labels zijn bij de
‫testgegevensset.
‫Dus we verwerken onze afbeeldingen net zoals we deden met de trainingsgegevens en dan veranderen we het
‫in een batch, in ons geval batches van grootte 32, zodat het heel snel kan worden berekend met onze GPU.
‫Dus laten we teruggaan naar waar we waren.
‫Dat is wat we hebben.
‫En als we data gaan testen.
‫Het is een batchgegevensset van vormen, dus er zijn hier geen labels, dit zijn slechts afbeeldingen van twee tot vier bij twee
‫tot vier bij drie vier.
‫De kleurkanalen van het type tensorflow drijven zo mooi.
‫We hebben onze testgegevens in de vorm van tensorbatches.
‫Dat is waar we naar op zoek zijn.
‫En nu.
‫De finale, we kunnen hier komen, zien hoe handig het schrijven van onze functies om mee te beginnen ons heeft geholpen.
‫We hebben een volledig model gemaakt.
‫We hebben geprobeerd een database die in één klap.
‫Nu gaan we een voorspellingsreeks maken.
‫Dus hoe kunnen we dat doen?
‫Maak voorspellingen over de batch met testgegevens met behulp van het geladen volledige model.
‫Oke.
‫Dus test voorspellingen.
‫Eagles geladen, volledig model, niet voorspellen.
‫Testgegevens.
‫We gaan dit instellen op ferbos is gelijk aan één.
‫Excellent.
‫Nu moet ik je waarschuwen dat dit vrij lang gaat duren.
‫De reden hiervoor is dat we hier een briefje plaatsen voordat we zelf gaan rennen, een briefje bellen.
‫Ook al werken we op een GPU, dit is net als
‫het trainen van onze volledige modellen, dus het samenvoegen van voorspellingen op ons volledige model en het slagen ervoor, het duurt lang voordat de testgegevensbatch wordt uitgevoerd.
‫En dan wordt het zoiets als een vleermuis, nu gaan we ongeveer een uur door.
‫Dat is wat ik in ieder geval heb gevonden, de reden hiervoor is dat we hier nog eens 10000 afbeeldingen hebben en wat we
‫moeten doen is ons geladen volledige model krijgen.
‫Dus alle patronen die ons geladen volledige model heeft geleerd en de trainingsgegevensset,
‫moet dat proces doorlopen.
‫De 10000 afbeeldingen in onze testbestandsnamen zijn onze testgegevensbatch.
‫En maak vervolgens voorspellingen op basis van de patronen die het in die testgegevens vindt.
‫Dus we hebben uitgebreid gelijkgesteld aan één, zodat wanneer we dit uitvoeren, het ons nog een kleine tijdstap geeft om ons op
‫de hoogte te houden van wat er aan de hand is.
‫Dus zonder verder oponthoud, laten we dit uitvoeren.
‫En wacht tot het is geladen en dan doen we hetzelfde nog een keer, allemaal versnellen we de video, zodat
‫het voor jou onmiddellijk wordt geladen.
‫In werkelijkheid duurt het even voordat je hun cel hebt.
‫In werkelijkheid zal het me een tijdje kosten om deze cel te runnen, maar ik doe het alleen
‫om je het te laten zien, in te laden, een ETA-bericht te maken en dan wat voorspellingen te doen over de erflater.
‫Dus we wachten nog even, dit gaat omhoog, daar gaan we.
‫Dus het is ongeveer 38 minuten.
‫Het moet 324 batches doorlopen.
‫En dat komt omdat als je tienduizend driehonderd zevenenvijftig gaat, gedeeld door 32.
‫Het gaat dat afronden naar driehonderdvierentwintig, daar komt dat getal vandaan.
‫Oké, dus ik wacht tot dit doorgaat.
‫Het kan ook zijn dat je even moet wachten tot het doorgaat.
‫Je hoeft eigenlijk niet te wachten.
‫Ik ben over een paar seconden terug.
‫Dus ik ga mijn video hier pauzeren en ik ben terug in drie tegen één.
‫En we zijn nu terug.
‫Ik ben hier iets brutaals gaan doen.
‫Zoals je ziet, hebben we nog ongeveer een uur.
‫Maar ik dacht dat ik liever hier zat en wacht.
‫Ik heb het eigenlijk, zoals elke goede kok, gedaan.
‫Ik heb eerder een gerecht bereid, dus ik heb dit proces echt doorlopen en het volledige uur gewacht om door
‫te gaan.
‫En nu zou je kunnen wachten tot de jouwe doorgaat.
‫Maar als je een kant-en-klaar ESV van de testvoorspellingen wilt downloaden, voeg die dan allemaal toe in het vriesgedeelte, zodat je niet dat
‫hele uur hoeft te wachten om door te gaan.
‫En nu had ik je dit waarschijnlijk moeten vertellen voordat ik deze cel runde, maar het is een goede zaak om je voeten nat
‫te maken en dan een betere manier te bedenken om dingen te doen.
‫Als we wilden dat dit testvoorspellingen opsloeg in een CSB-bestand nadat het door was, want als we een heel uur zouden wachten om het door te laten gaan
‫en dan zouden we op de een of andere manier de runtime loskoppelen en het redde niet dat dat behoorlijk teleurstellend
‫zou zijn.
‫Dus wat we kunnen doen is ENPI gebruiken, deze functie hier niet opslaan om deze lading dokterswerk op te slaan
‫terwijl dit wordt uitgevoerd?
‫Ik denk niet dat het zal gebeuren.
‫Maar wat dit gaat doen, oh, we zijn deze Freds-array vergeten.
‫Dus laten we zeggen dat dit klaar is.
‫Als ik deze cel erna laat lopen, worden testvoorspellingen opgeslagen, dus deze Nampara, die een
‫voorspelling is, worden waarschijnlijk naar dit bestand gestuurd als een CSV met het scheidingsteken door komma's voor door komma's gescheiden waarden.
‫En als het eenmaal is opgeslagen, zal het verschijnen.
‫In onze bestanden, als producent, heb ik geen CSFI, omdat dat de bestandsnaam is die we het hebben gegeven, en dan kunnen
‫we tekst gebruiken en uploaden om het weer in te laden.
‫Dus wat zal doen?
‫In plaats van te wachten tot dit klaar is, laat ik je dat gewoon in actie zien, dus dit zijn
‫enkele voorspellingskansen die ik in het verleden heb gemaakt met een volledig model.
‫Ik ga hier dus mee stoppen.
‫Had nog een uur te gaan.
‫Dus nogmaals, mijn schatting dat het ongeveer een uur zal duren is onjuist.
‫Dus toetsenbordonderbreking.
‫Daar gaan we.
‫Dus we gaan dat niet uitvoeren omdat ik dat al heb gedaan. Ik heb dit al voor Zarei opgeslagen, maar ik ga
‫erheen rennen.
‫Dus laten we doen alsof ik dit heb uitgevoerd nadat deze cel is voltooid.
‫Dit is dus nul geworden.
‫Dus ik ga in wanorde laden vanuit een gevoel van vallen.
‫Mooi.
‫Laten we nu eens kijken naar de eerste 10.
‫Daar gaan we, dus dit zijn allemaal voorspellingskansen voor de 10000 afbeeldingen, dus laten we eens kijken
‫naar de vorm van testvoorspellingen.
‫Tienduizend driehonderd zevenenvijftig, dus dat is hoeveel testbeelden we hebben en elk van
‫hen heeft honderdtwintig verschillende voorspellingskansen.
‫We hebben deze waarden eerder gezien.
‫En onthoud, ik heb dit zojuist genomen, laat het in zijn omvang lopen, sla deze ASV op in een bestand dat ik eerder
‫heb gedaan, alsof we eerder iets hebben gekookt en dan heb ik het hier opnieuw geladen.
‫Als de verbinding met mijn runtime zou worden verbroken, zou ik willen dat dit bestand ergens wordt opgeslagen waar ik het later kan openen.
‫Dus wat is onze volgende missie, als we deze array met voorspellingen aan Kagle wilden indienen, hoe zou het er dan
‫uit moeten zien?
‫Dus de voorbeeldinzending is hier.
‫Oh, er is iets misgegaan in je gegevens.
‫Dat is niet zo leuk, maar gelukkig heb ik dit dossier en hondenvisie.
‫En het is een ASV en dus alles wat ik heb gedaan is dat ik het zojuist heb gedownload en geopend en Google Spreadsheets, dus zo
‫ziet het eruit.
‫Dit is de voorbeeldinzending die we nodig hebben om onze voorspellingsreeks in zoiets als dit te krijgen.
‫Dus een ID-kolom en vervolgens een kolom voor elk van de verschillende hondenrassen en vervolgens hun voorspellingskansen.
‫Dus dat is waar we naartoe hebben gewerkt in de volgende
‫video: voorspellingskansen, array voor hondenvisie of we gaan eigenlijk terug naar het Kagle hondenras-ID-formaat.
‫Dus we zullen het zo instellen, zodat we Kagle kunnen indienen met onze voorspellingen.