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
Firma Microsoft udostępnia zestawy danych Platformy Azure open na zasadzie "tak, jak to jest". Firma Microsoft nie udziela żadnych gwarancji, wyraźnych lub domniemanych, gwarancji ani warunków w odniesieniu do korzystania z zestawów danych. W zakresie dozwolonym zgodnie z prawem lokalnym firma Microsoft nie ponosi odpowiedzialności za wszelkie szkody lub straty, w tym bezpośrednie, wtórne, 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 Narodowy Instytut Standardów i Technologii.
Lokalizacja usługi Storage
- 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
Załaduj aplikację MNIST do ramki danych przy użyciu tabelarycznych zestawów danych 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.
Pobieranie kompletnego zestawu danych do ramki 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()
Pobieranie lub instalowanie nieprzetworzonych plików MNIST zestawów 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 w przypadku uruchamiania zadania trenowania 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
Załaduj aplikację MNIST do ramki danych przy użyciu tabelarycznych zestawów danych 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.
Pobieranie kompletnego zestawu danych do ramki 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))
Pobieranie lub instalowanie nieprzetworzonych plików MNIST zestawów 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 w przypadku uruchamiania zadania trenowania 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 pozostałe zestawy danych w katalogu Open Datasets (Otwieranie zestawów danych).