Baza danych MNIST cyfr odręcznych
Baza danych napisanych odręcznie cyfr MNIST obejmuje zestaw treningowy zawierający 60 000 przykładów oraz zestaw testowy zawierający 10 000 przykładów. Cyfry zostały znormalizowane pod względem rozmiaru i wyśrodkowane na obrazie o stałym rozmiarze.
Uwaga
Microsoft udostępnia zestawy danych Usługi Azure Open na zasadzie "tak, jak to jest". Microsoft nie udziela żadnych gwarancji, wyraźnych ani domniemanych, gwarancji ani warunków w odniesieniu do korzystania z zestawów danych. W zakresie dozwolonym zgodnie z prawem lokalnym Microsoft nie ponosi odpowiedzialności za wszelkie szkody lub straty, w tym bezpośrednie, wynikowe, specjalne, pośrednie, przypadkowe lub karne wynikające z korzystania z zestawów danych.
Zestaw danych jest udostępniany zgodnie z pierwotnymi warunkami, na jakich firma Microsoft otrzymała dane źródłowe. Zestaw danych może zawierać dane pozyskane z firmy Microsoft.
Ten zestaw danych pochodzi z bazy danych napisanych odręcznie cyfr MNIST. Jest to podzbiór większej bazy danych formularzy i znaków NIST opublikowanych przez National Institute of Standards and Technology.
Lokalizacja magazynu
- Konto blob: azureopendatastorage
- Nazwa kontenera: mnist
Bezpośrednio w kontenerze znajdują się cztery pliki:
- train-images-idx3-ubyte.gz: obrazy zestawu treningowego (9 912 422 bajty)
- train-labels-idx1-ubyte.gz: etykiety zestawu treningowego (28 881 bajtów)
- t10k-images-idx3-ubyte.gz: obrazy zestawu testów (1,648 877 bajtów)
- t10k-labels-idx1-ubyte.gz: etykiety zestawu testów (4542 bajty)
Dostęp do danych
Azure Notebooks
Porada
Załaduj aplikację MNIST do ramki danych przy użyciu zestawów danych tabelarycznych usługi Azure Machine Learning.
Aby uzyskać więcej informacji na temat zestawów danych usługi Azure Machine Learning, zobacz Tworzenie zestawów danych usługi Azure Machine Learning.
Uzyskiwanie kompletnego zestawu danych w ramce danych
from azureml.opendatasets import MNIST
mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_pandas_dataframe()
mnist_df.info()
Pobieranie ramek danych trenowania i testowania
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
Wykreślij niektóre obrazy cyfr
%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()
Pobierz lub zainstaluj nieprzetworzone pliki MNIST zestawy danych plików usługi Azure Machine Learning.
Działa to tylko w przypadku obliczeń opartych na systemie Linux. Aby uzyskać więcej informacji na temat zestawów danych usługi Azure Machine Learning, zobacz Tworzenie zestawów danych usługi Azure Machine Learning.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Pobieranie plików do magazynu lokalnego
import os
import tempfile
data_folder = tempfile.mkdtemp()
data_paths = mnist_file.download(data_folder, overwrite=True)
data_paths
Instalowanie plików. Przydatne, gdy zadanie trenowania zostanie uruchomione w zdalnym środowisku obliczeniowym.
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
Porada
Załaduj aplikację MNIST do ramki danych przy użyciu zestawów danych tabelarycznych usługi Azure Machine Learning.
Aby uzyskać więcej informacji na temat zestawów danych usługi Azure Machine Learning, zobacz Tworzenie zestawów danych usługi Azure Machine Learning.
Uzyskiwanie kompletnego zestawu danych w ramce danych
# 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))
Pobierz lub zainstaluj nieprzetworzone pliki MNIST zestawy danych plików usługi Azure Machine Learning.
Działa to tylko w przypadku obliczeń opartych na systemie Linux. Aby uzyskać więcej informacji na temat zestawów danych usługi Azure Machine Learning, zobacz Tworzenie zestawów danych usługi Azure Machine Learning.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Pobieranie plików do magazynu lokalnego
import os
import tempfile
mount_point = tempfile.mkdtemp()
mnist_file.download(mount_point, overwrite=True)
Instalowanie plików. Przydatne, gdy zadanie trenowania zostanie uruchomione w zdalnym środowisku obliczeniowym.
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())
Następne kroki
Wyświetl resztę zestawów danych w katalogu Open Datasets (Otwarte zestawy danych).