MNIST-datasættet i Python – Grundlæggende import og plotning
Introduktion
MNIST-datasættet er et håndskrevet cifredatasæt, der indeholder 70.000 billeder af tal mellem 0 og 9. Hvert billede er 28×28 pixels stort, hvilket resulterer i et input-array på 784 elementer. MNIST-datasættet er et grundlæggende værktøj inden for machine learning og bruges ofte til at teste og udvikle billedegenkendelsesalgoritmer. I denne artikel vil vi se på, hvordan man importerer og plotter MNIST-datasættet ved hjælp af Python. Vi vil også udforske nogle grundlæggende dataundersøgelser og visualiseringer.
Import af MNIST-datasættet
Det første skridt er at importere MNIST-datasættet ved hjælp af Keras. Keras er et high-level neural network API, der forenkler processen med at bygge og træne maskinlæringsmodeller.
python
import tensorflow as tf
from keras.datasets import mnist
Indholdsfortegnelse
Indlæs MNIST datasættet
(x_train, y_train), (x_test, y_test) = mnist.load_data()
Variablen x_train
og x_test
indeholder billederne for hhv. trænings- og testsættene, mens y_train
og y_test
indeholder etiketterne for de tilsvarende billeder.
Form af datasættet
Lad os se på formen af datasættene:
python
print("Train data shape:", x_train.shape)
print("Train label shape:", y_train.shape)
print("Test data shape:", x_test.shape)
print("Test label shape:", y_test.shape)
Dette vil printe følgende output:
Train data shape: (60000, 28, 28)
Train label shape: (60000,)
Test data shape: (10000, 28, 28)
Test label shape: (10000,)
Som vi kan se, har træningssættet 60.000 billeder, mens testsættet har 10.000 billeder. Hvert billede er 28×28 pixels stort, hvilket resulterer i en array-form på (28×28=784).
Plotning af et billede
Lad os nu plotte et billede fra datasættet:
python
import matplotlib.pyplot as plt
Vælg et tilfældigt indeks
index = np.random.randint(0, len(x_train))
Hent billede og etiket
image = x_train[index]
label = y_train[index]
Plot billede med pyplot
plt.imshow(image, cmap='gray')
plt.title("Nummer: {}".format(label))
plt.show()
Dette vil plotte et tilfældigt billede fra træningssættet sammen med dets etiket.
Dataudforskning
Lad os udføre nogle grundlæggende dataudforskning på MNIST-datasættet:
Fordeling af etiketter
python
import collections
counter = collections.Counter(y_train)
print("Fordeling af etiketter:")
for label, count in counter.items():
print("Label {}: {}".format(label, count))
Dette vil printe fordelingen af etiketter i træningssættet. Vi kan se, at hvert tal har ca. 6000 eksempler.
Visualisering af billeder
python
import matplotlib.pyplot as plt
Plot flere billeder
fig, axs = plt.subplots(5, 5, figsize=(7, 7))
axs = axs.ravel()
for i in range(25):
index = np.random.randint(0, len(x_train))
image = x_train[index]
label = y_train[index]
axs[i].imshow(image, cmap='gray')
axs[i].set_title("Nummer: {}".format(label))
axs[i].axis('off')
plt.tight_layout()
plt.show()
Dette vil plotte et gitter af 25 tilfældige billeder fra træningssættet sammen med deres etiketter.
Konklusion
I denne artikel har vi givet en grundlæggende introduktion til MNIST-datasættet i Python. Vi har vist, hvordan man importerer datasættet, plotter et enkelt billede og udfører nogle grundlæggende dataundersøgelser. MNIST-datasættet er et værdifuldt værktøj til at teste og udvikle billedegenkendelsesalgoritmer. Vi opfordrer dig til at udforske datasættet yderligere og bruge det til dine egne maskinlæringsopgaver.
Ofte stillede spørgsmål (FAQ)
1. Hvad er MNIST-datasættet?
MNIST er et håndskrevet cifredatasæt, der indeholder 70.000 billeder af tal mellem 0 og 9.
2. Hvorfor er MNIST-datasættet så populært?
MNIST-datasættet er et grundlæggende værktøj inden for machine learning og bruges ofte til at teste og udvikle billedegenkendelsesalgoritmer.
3. Hvordan importerer man MNIST-datasættet i Python?
Du kan importere MNIST-datasættet ved hjælp af Keras ved hjælp af følgende kommando:
python
(x_train, y_train), (x_test, y_test) = mnist.load_data()
4. Hvordan plotter man et billede fra MNIST-datasættet?
Du kan plotte et billede fra MNIST-datasættet ved hjælp af følgende kommandoer:
python
import matplotlib.pyplot as plt
Vælg et tilfældigt indeks
index = np.random.randint(0, len(x_train))
Hent billede og etiket
image = x_train[index]
label = y_train[index]
Plot billede med pyplot
plt.imshow(image, cmap='gray')
plt.title("Nummer: {}".format(label))
plt.show()
5. Hvordan udfører man dataudforskning på MNIST-datasættet?
Du kan udføre dataudforskning på MNIST-datasættet ved hjælp af følgende kommandoer:
python
import collections
counter = collections.Counter(y_train)
print("Fordeling af etiketter:")
for label, count in counter.items():
print("Label {}: {}".format(label, count))
6. Hvordan visualiserer man billeder fra MNIST-datasættet?
Du kan visualisere billeder fra MNIST-datasættet ved hjælp af følgende kommandoer:
python
import matplotlib.pyplot as plt
Plot flere billeder
fig, axs = plt.subplots(5, 5, figsize=(7, 7))
axs = axs.ravel()
for i in range(25):
index = np.random.randint(0, len(x_train))
image = x_train[index]
label = y_train[index]
axs[i].imshow(image, cmap='gray')
axs[i].set_title("Nummer: {}".format(label))
axs[i].axis('off')
plt.tight_layout()
plt.show()
7. Hvilke andre cifredatasæt er tilgængelige?
Der er mange andre cifredatasæt tilgængelige, herunder SVHN, CIFAR-10 og CIFAR-100.
8. Hvor kan jeg finde flere oplysninger om MNIST-datasættet?
Du kan finde flere oplysninger om MNIST-datasættet på den officielle TensorFlow-side.