De MNIST-database met handgeschreven cijfers
De MNIST-database met handgeschreven cijfers als een trainingsset met 60.000 voorbeelden en een testset met 10.000 voorbeelden. De grootte van de cijfers is genormaliseerd en worden gecentreerd weergegeven in een afbeelding met een vaste grootte.
Notitie
Microsoft biedt Azure Open Datasets op basis van 'zoals is'. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, garanties of voorwaarden met betrekking tot uw gebruik van de gegevenssets. Voor zover toegestaan volgens uw lokale wetgeving, wijst Microsoft alle aansprakelijkheid af voor eventuele schade of verliezen, waaronder directe, gevolgschade, speciale, indirecte, incidentele of strafbare gegevenssets, die het gevolg zijn van uw gebruik van de gegevenssets.
Deze gegevensset wordt geleverd onder de oorspronkelijke voorwaarden dat Microsoft de brongegevens heeft ontvangen. De gegevensset kan gegevens bevatten die afkomstig zijn van Microsoft.
Deze gegevensset is afkomstig uit de MNIST-database met handgeschreven cijfers. Het is een subset van de grotere NIST handgedrukte formulieren en tekens database gepubliceerd door National Institute of Standards and Technology.
Opslaglocatie
- Blobaccount: azureopendatastorage
- Containernaam: mnist
Er zijn vier bestanden direct beschikbaar in de container:
- train-images-idx3-ubyte.gz: installatiekopieën van trainingssets (9.912.422 bytes)
- train-labels-idx1-ubyte.gz: labels voor trainingssets (28.881 bytes)
- t10k-images-idx3-ubyte.gz: installatiekopieën testen (1.648.877 bytes)
- t10k-labels-idx1-ubyte.gz: labels testen (4.542 bytes)
Toegang tot gegevens
Azure Notebooks
Laad MNIST in een gegevensframe met behulp van tabelgegevenssets van Azure Machine Learning.
Volledige gegevensset in een gegevensframe ophalen
from azureml.opendatasets import MNIST
mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_pandas_dataframe()
mnist_df.info()
Gegevensframes trainen en testen
mnist_train = MNIST.get_tabular_dataset(dataset_filter='train')
mnist_train_df = mnist_train.to_pandas_dataframe()
X_train = mnist_train_df.drop("label", axis=1).astype(int).values/255.0
y_train = mnist_train_df.filter(items=["label"]).astype(int).values
mnist_test = MNIST.get_tabular_dataset(dataset_filter='test')
mnist_test_df = mnist_test.to_pandas_dataframe()
X_test = mnist_test_df.drop("label", axis=1).astype(int).values/255.0
y_test = mnist_test_df.filter(items=["label"]).astype(int).values
Enkele afbeeldingen van de cijfers tekenen
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
# now let's show some randomly chosen images from the traininng set.
count = 0
sample_size = 30
plt.figure(figsize=(16, 6))
for i in np.random.permutation(X_train.shape[0])[:sample_size]:
count = count + 1
plt.subplot(1, sample_size, count)
plt.axhline('')
plt.axvline('')
plt.text(x=10, y=-10, s=y_train[i], fontsize=18)
plt.imshow(X_train[i].reshape(28, 28), cmap=plt.cm.Greys)
plt.show()
Onbewerkte MNIST-bestanden downloaden of koppelen aan Azure Machine Learning-bestandsgegevenssets.
Dit werkt alleen voor Berekening op basis van Linux. Zie Azure Machine Learning-gegevenssets maken voor meer informatie over Azure Machine Learning-gegevenssets.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Bestanden downloaden naar lokale opslag
import os
import tempfile
data_folder = tempfile.mkdtemp()
data_paths = mnist_file.download(data_folder, overwrite=True)
data_paths
Koppel bestanden. Handig wanneer de trainingstaak wordt uitgevoerd op een externe berekening.
import gzip
import struct
import pandas as pd
import numpy as np
# load compressed MNIST gz files and return pandas dataframe of numpy arrays
def load_data(filename, label=False):
with gzip.open(filename) as gz:
gz.read(4)
n_items = struct.unpack('>I', gz.read(4))
if not label:
n_rows = struct.unpack('>I', gz.read(4))[0]
n_cols = struct.unpack('>I', gz.read(4))[0]
res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8)
res = res.reshape(n_items[0], n_rows * n_cols)
else:
res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8)
res = res.reshape(n_items[0], 1)
return pd.DataFrame(res)
import sys
mount_point = tempfile.mkdtemp()
print(mount_point)
print(os.path.exists(mount_point))
if sys.platform == 'linux':
print("start mounting....")
with mnist_file.mount(mount_point):
print("list dir...")
print(os.listdir(mount_point))
print("get the dataframe info of mounted data...")
train_images_df = load_data(next(path for path in data_paths if path.endswith("train-images-idx3-ubyte.gz")))
print(train_images_df.info())
Azure Databricks
Laad MNIST in een gegevensframe met behulp van tabelgegevenssets van Azure Machine Learning.
Volledige gegevensset in een gegevensframe ophalen
# This is a package in preview.
from azureml.opendatasets import MNIST
mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_spark_dataframe()
display(mnist_df.limit(5))
Onbewerkte MNIST-bestanden downloaden of koppelen aan Azure Machine Learning-bestandsgegevenssets.
Dit werkt alleen voor Berekening op basis van Linux. Zie Azure Machine Learning-gegevenssets maken voor meer informatie over Azure Machine Learning-gegevenssets.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Bestanden downloaden naar lokale opslag
import os
import tempfile
mount_point = tempfile.mkdtemp()
mnist_file.download(mount_point, overwrite=True)
Koppel bestanden. Handig wanneer de trainingstaak wordt uitgevoerd op een externe berekening.
import gzip
import struct
import pandas as pd
import numpy as np
# load compressed MNIST gz files and return numpy arrays
def load_data(filename, label=False):
with gzip.open(filename) as gz:
gz.read(4)
n_items = struct.unpack('>I', gz.read(4))
if not label:
n_rows = struct.unpack('>I', gz.read(4))[0]
n_cols = struct.unpack('>I', gz.read(4))[0]
res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8)
res = res.reshape(n_items[0], n_rows * n_cols)
else:
res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8)
res = res.reshape(n_items[0], 1)
return pd.DataFrame(res)
import sys
mount_point = tempfile.mkdtemp()
print(mount_point)
print(os.path.exists(mount_point))
print(os.listdir(mount_point))
if sys.platform == 'linux':
print("start mounting....")
with mnist_file.mount(mount_point):
print(context.mount_point )
print(os.listdir(mount_point))
train_images_df = load_data(os.path.join(mount_point, 'train-images-idx3-ubyte.gz'))
print(train_images_df.info())
Volgende stappen
Bekijk de rest van de gegevenssets in de catalogus Open Datasets.