MNIST-Datenbank handschriftlicher Ziffern
Die MNIST-Datenbank handschriftlicher Ziffern verfügt über 60.000 Tranings- und 10.000 Testbeispiele. Die Größe der Ziffern wurde normalisiert, und die Ziffern wurden in einem Bild mit fester Größe zentriert.
Hinweis
Microsoft stellt Datasets der Plattform Azure Open Datasets auf einer „As is“-Basis (d. h. ohne Mängelgewähr) zur Verfügung. Microsoft übernimmt weder ausdrücklich noch stillschweigend die Gewährleistung für Ihre Nutzung der Datasets und sichert keinerlei Garantien oder Bedingungen zu. Soweit nach örtlich anwendbarem Recht zulässig, lehnt Microsoft jegliche Haftung für Schäden oder Verluste ab. Dies schließt direkte, indirekte, besondere oder zufällige Schäden oder Verluste sowie Folge- und Strafschäden und damit verbundene Verluste ein, die sich aus Ihrer Nutzung der Datasets ergeben.
Für die Bereitstellung dieses Datasets gelten die ursprünglichen Nutzungsbedingungen, unter denen Microsoft die Quelldaten bezogen hat. Das Dataset kann Daten von Microsoft enthalten.
Dieses Dataset stammt aus der MNIST-Datenbank handschriftlicher Ziffern. Es handelt sich dabei um eine Teilmenge der NIST-Datenbank handschriftlicher Formen und Zeichen, die vom National Institute of Standards and Technology veröffentlicht wird.
Speicherort
- Blobkonto: azureopendatastorage
- Containername: mnist
Vier Dateien finden Sie direkt im Container:
- train-images-idx3-ubyte.gz: Trainingsbilder (9.912.422 Byte)
- train-labels-idx1-ubyte.gz: Trainingsbezeichnungen (28.881 Byte)
- t10k-images-idx3-ubyte.gz: Testbilder (1.648.877 Byte)
- t10k-labels-idx1-ubyte.gz: Testbezeichnungen (4.542 Byte)
Datenzugriff
Azure Notebooks
Laden Sie MNIST mithilfe tabellarischer Datasets in Azure Machine Learning in einen Datenrahmen.
Weitere Informationen zu Azure Machine Learning-Datasets finden Sie unter Erstellen von Azure Machine Learning-Datasets.
Abrufen des vollständigen Datasets in einen Datenrahmen
from azureml.opendatasets import MNIST
mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_pandas_dataframe()
mnist_df.info()
Abrufen von Trainings- und Testdatenrahmen
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
Zeichnen einiger Bilder der Ziffern
%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()
Laden Sie die MNIST-Rohdateien als Azure Machine Learning-Dateidatasets herunter, oder binden Sie sie in Dateidatasets ein.
Dies funktioniert nur mit Linux-basiertem Computing. Weitere Informationen zu Azure Machine Learning-Datasets finden Sie unter Erstellen von Azure Machine Learning-Datasets.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Herunterladen von Dateien in den lokalen Speicher
import os
import tempfile
data_folder = tempfile.mkdtemp()
data_paths = mnist_file.download(data_folder, overwrite=True)
data_paths
Binden Sie die Dateien ein. Nützlich, wenn der Trainingsauftrag auf einem Remotecomputer ausgeführt wird.
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
Laden Sie MNIST mithilfe tabellarischer Datasets in Azure Machine Learning in einen Datenrahmen.
Weitere Informationen zu Azure Machine Learning-Datasets finden Sie unter Erstellen von Azure Machine Learning-Datasets.
Abrufen des vollständigen Datasets in einen Datenrahmen
# 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))
Laden Sie die MNIST-Rohdateien als Azure Machine Learning-Dateidatasets herunter, oder binden Sie sie in Dateidatasets ein.
Dies funktioniert nur mit Linux-basiertem Computing. Weitere Informationen zu Azure Machine Learning-Datasets finden Sie unter Erstellen von Azure Machine Learning-Datasets.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Herunterladen von Dateien in den lokalen Speicher
import os
import tempfile
mount_point = tempfile.mkdtemp()
mnist_file.download(mount_point, overwrite=True)
Binden Sie die Dateien ein. Nützlich, wenn der Trainingsauftrag auf einem Remotecomputer ausgeführt wird.
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())
Nächste Schritte
Machen Sie sich mit den restlichen Datasets im Open Datasets-Katalog vertraut.