De CIFAR-10 dataset bestaat uit 60000 32×32 schaduwfoto’s in 10 klassen, met 6000 foto’s voor elke klasse. De dataset is onderverdeeld in vijf voorbereidingsgroepen en een testgroep, elk met 10000 beelden. De testcluster bevat precies 1000 lukraak gekozen foto’s uit elke klasse. De voorbereidingsclusters bevatten de rest van de foto’s in de willekeurige verzoeken, maar sommige voorbereidingsgroepen kunnen een groter aantal foto’s van de ene klasse bevatten dan de andere. Daartussen bevatten de voorbereidingsgroepen precies 5000 foto’s van elke klasse.

Hier zijn de klassen in de dataset, net als 10 onregelmatige foto’s van elk: Er zijn 50000 voorbereidingsfoto’s en 10000 testfoto’s.

De klassen zijn totaal niet gerelateerd. Er is geen dekking onder de voertuigen en vrachtwagens. “Auto” bevat voertuigen, SUV’s, dat soort dingen. “Vrachtwagen” bevat alleen maar enorme vrachtwagens. Geen van beide bevat pick-ups.

Patroonresultaten

U kunt een aantal benchmark herhaalbare resultaten op deze dataset ontdekken op de taakpagina voor cuda-convnet. Deze uitkomsten zijn verkregen met een convolutioneel neuraal systeem. Snel, ze zijn 18% testfout zonder informatiegroei en 11% met. Bovendien heeft Jasper Snoek een ander papier waar hij gebruik maakte van Bayesiaanse hyperparameter vooruitgang om fatsoenlijke instellingen van het gewicht rot en verschillende hyperparameters te ontdekken, waardoor hij een test blunder tempo van 15% (zonder informatie verhoging) met behulp van de techniek van het net dat kreeg 18% te krijgen.

Verschillende resultaten

Rodrigo Benenson is welwillend genoeg geweest om resultaten te verzamelen over CIFAR-10/100 en verschillende datasets op zijn site; klik hier om te zien.

Ontwerp van de dataset

Python/Matlab uitleveringen

Ik zal het ontwerp van de Python aanpassing van de dataset weergeven. Het ontwerp van de Matlab-bewerking is niet te onderscheiden.

De kroniek bevat de documenten data_batch_1, data_batch_2, …, data_batch_5, net als test_batch. Elk van deze documenten is een Python “cured” object dat met cPickle wordt geleverd. Hier is een python2-routine die zo’n record opent en een woordverwijzing terugstuurt:

def unpickle(bestand):

importeren cPickle

met open (bestand, ‘rb’) als fo:

dict = cPickle.load(fo)

retouropdracht

En een python3 versie:

defickle(file):

importpickle

met open (bestand, ‘rb’) als fo:

dict = pickle.load(fo, codering=’bytes’)

retouropdracht

Gestapeld langs deze lijnen, bevat elk van de bosrecords een woordreferentie met de bijbehorende onderdelen:

informatie – een 10000×3072 numpy tentoonstelling van uint8s. Elke lijn van het cluster slaat een 32×32 schaduwfoto op. De eerste 1024 secties bevatten de rode kanaalaandelen, de volgende 1024 de groene, en de laatste 1024 de blauwe. Het beeld is weggezet in push significant verzoek, met als doel dat de eerste 32 passages van de tentoonstelling de rode kanaalschattingen van de hoofdkolom van het beeld zijn.

namen – een overzicht van 10000 nummers in het bereik 0-9. Het nummer op de lijst I toont de markering van de i-de foto in de expositie-informatie.

Dubbele vorm

Het dubbele formulier bevat de documenten data_batch_1.bin, data_batch_2.bin, …, data_batch_5.bin, net als test_batch.bin. Elk van deze documenten is ontworpen als achtervolging:

<1 x label><3072 x pixel>

<1 x label><3072 x pixel>

Aan het eind van de dag is de hoofdbyte de naam van de hoofdfoto, die een getal is in de range 0-9. De volgende 3072 bytes zijn de schattingen van de pixels van de foto. De eerste 1024 bytes zijn de rode kanaalschattingen, de volgende 1024 de groene en de laatste 1024 de blauwe. De kwaliteiten worden weggestopt in push significante verzoeken, dus de initiële 32 bytes zijn de rode kanaalschattingen van de primaire lijn van het beeld.

Elk record bevat 10000 van zulke 3073 bytes “lijnen” van beelden, ondanks het feit dat er niets is dat de lijnen begrenst. Op deze manier zou elk record eigenlijk 30730000 bytes lang moeten zijn.

Er is nog een ander record, genaamd batches.meta.txt. Dit is een ASCII-record dat numerieke tekens in het bereik van 0-9 tot belangrijke klassennamen in kaart brengt. Het is slechts een opsomming van de 10 klassennamen, één voor elke regel. De klassennaam op push I heeft betrekking op numerieke markering I.

De CIFAR-100 dataset

Deze dataset is vrijwel hetzelfde als de CIFAR-10, met uitzondering van de 100 klassen die elk 600 foto’s bevatten. Er zijn 500 voorbereidingsfoto’s en 100 testfoto’s voor elke klas. De 100 klassen in de CIFAR-100 zijn verzameld in 20 superklassen. Elke foto gaat vergezeld van een “fijn” merkteken (de klasse waar hij een plaats heeft) en een “grove” naam (de superklasse waar hij een plaats heeft).

Hier is het overzicht van de klassen in de CIFAR-100:

Superklasse Klassen

amfibische zoogdieren bever, dolfijn, otter, zeehond, walvis

visaquariumvissen, platvissen, balken, haaien, forellen

bloemenorchideeën, klaprozen, rozen, zonnebloemen, tulpen

voedingscontainers flessen, kommen, potten, bekers, borden

producten van de bodem, champignons, sinaasappels, peren, paprika’s

familie-eenheid elektrische apparaten klok, PC-console, licht, telefoon, TV

familiemeubilair bed, zitje, liefdeszitje, tafel, kast

insectenbij, scarabee, vlinder, rups, kakkerlak

grote carnivoren beer, panter, leeuw, tijger, wolf…

enorme door de mens gemaakte openlucht dingen brug, landhuis, huis, straat, hoogbouw

enorme regelmatige openlucht scènes wolk, backwoods, berg, vlakte, oceaan

enorme omnivoren en herbivoren kameel, ossen, chimpansee, olifant, kangoeroe

middelgrote zoogdieren vos, stekelvarken, buidelrat, wasbeer, stinkdier

niet-kruipende ongewervelde krab, kreeft, slak, spinachtigen, worm

mensen baby, kind, jonge dame, man, dame…

reptielen krokodil, dinosaurus, reptiel, slang, schildpad

kleine zoogdieren hamster, muis, haas, meid, eekhoorn

bomen esdoorn, eik, palm, den, wilg

voertuigen 1 fiets, transport, cruiser, pick-up truck, trein

voertuigen 2 grasmaaier, raket, tram, tank, tractor