Kézzel írt számjegyek MNIST-adatbázisa
A kézzel írt számjegyeket tartalmazó MNIST-adatbázis egy 60 000 példát tartalmazó betanítási készletből és egy 10 000 példát tartalmazó tesztelési készletből áll. A számjegyek egységesített méretűek és az azonos méretű képek közepére vannak rendezve.
Megjegyzés:
A Microsoft az Azure Open Datasets szolgáltatást "adott módon" biztosítja. A Microsoft nem vállal kifejezett vagy vélelmezett garanciát vagy feltételeket az adathalmazok Ön általi használatára vonatkozóan. A microsoft a helyi jogszabályok által megengedett mértékben kizár minden felelősséget az adathalmazok használatából eredő károkért vagy veszteségekért, beleértve a közvetlen, következményi, különleges, közvetett, incidenses vagy büntető jellegű károkat is.
Az adatkészletet a Microsoft forrásadataihoz tartozó eredeti feltételek szerint szolgáltatjuk. A készlet tartalmazhat Microsofttól származó adatokat.
Az adatkészlet forrása: A kézzel írt számjegyeket tartalmazó MNIST-adatbázis. Ez a Nemzeti Szabványügyi és Technológiai Intézet által közzétett, nagyobb, kézzel nyomtatott NIST-űrlapok és karakterek adatbázisának egy része.
Tárolási hely
- Blobfiók: azureopendatastorage
- Tároló neve: mnist
A tárolóban négy fájl érhető el közvetlenül:
- train-images-idx3-ubyte.gz: betanítási készlet képei (9 912 422 bájt)
- train-labels-idx1-ubyte.gz: betanítási készlet címkéi (28 881 bájt)
- t10k-images-idx3-ubyte.gz: tesztkészlet képei (1 648 877 bájt)
- t10k-labels-idx1-ubyte.gz: tesztkészlet címkéi (4542 bájt)
Az adatok elérése
Azure Notebooks
Az MNIST betöltése adatkeretbe az Azure Machine Tanulás táblázatos adatkészletek használatával.
Az Azure Machine Tanulás adatkészletekről további információt az Azure Machine Tanulás adatkészletek létrehozása című témakörben talál.
Teljes adatkészlet beolvasása egy adatkeretbe
from azureml.opendatasets import MNIST
mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_pandas_dataframe()
mnist_df.info()
Adatkeretek betanítása és tesztelése
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
A számjegyek néhány képének ábrázolása
%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()
Töltse le vagy csatlakoztassa az MNIST nyers fájljait az Azure Machine Tanulás fájladatkészletekhez.
Ez csak Linux-alapú számítás esetén működik. Az Azure Machine Tanulás adatkészletekről további információt az Azure Machine Tanulás adatkészletek létrehozása című témakörben talál.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Fájlok letöltése helyi tárolóba
import os
import tempfile
data_folder = tempfile.mkdtemp()
data_paths = mnist_file.download(data_folder, overwrite=True)
data_paths
Fájlok csatlakoztatása. Hasznos, ha a betanítási feladat távoli számításon fog futni.
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
Az MNIST betöltése adatkeretbe az Azure Machine Tanulás táblázatos adatkészletek használatával.
Az Azure Machine Tanulás adatkészletekről további információt az Azure Machine Tanulás adatkészletek létrehozása című témakörben talál.
Teljes adatkészlet beolvasása egy adatkeretbe
# 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))
Töltse le vagy csatlakoztassa az MNIST nyers fájljait az Azure Machine Tanulás fájladatkészletekhez.
Ez csak Linux-alapú számítás esetén működik. Az Azure Machine Tanulás adatkészletekről további információt az Azure Machine Tanulás adatkészletek létrehozása című témakörben talál.
mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()
Fájlok letöltése helyi tárolóba
import os
import tempfile
mount_point = tempfile.mkdtemp()
mnist_file.download(mount_point, overwrite=True)
Fájlok csatlakoztatása. Hasznos, ha a betanítási feladat távoli számításon fog futni.
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())
További lépések
Tekintse meg a többi adathalmazt az Open Datasets katalógusban.