El yazısı basamakların MNIST veritabanı

El yazısı rakamlardan oluşan MNIST veritabanı, 60.000 örnekli bir eğitim seti ve 10.000 örnekli bir test seti içerir. Rakamlar normal boyuttadır ve sabit boyutlu bir görüntüde ortalanmıştır.

Dekont

Microsoft, Azure Open Datasets'i "olduğu gibi" sağlar. Microsoft, veri kümelerini kullanımınızla ilgili olarak açık veya zımni hiçbir garanti veya koşul sağlamaz. Yerel yasalarınız kapsamında izin verilen ölçüde, Microsoft veri kümelerini kullanımınızdan kaynaklanan doğrudan, sonuçsal, özel, dolaylı, arızi veya cezai dahil olmak üzere tüm zarar veya kayıplar için tüm sorumluluğu kabul etmez.

Bu veri kümesi Microsoft’un kaynak verileri aldığı orijinal hükümler kapsamında sağlanır. Veri kümesi Microsoft’tan alınan verileri içerebilir.

Bu veri kümesinin kaynağı el yazısı rakamlardan oluşan MNIST VERİTABANI’dır. Ulusal Standartlar ve Teknoloji Enstitüsü tarafından yayımlanan daha büyük NIST Elle Yazdırılmış Formlar ve Karakterler Veritabanı'nın bir alt kümesidir.

Depolama konumu

  • Blob hesabı: azureopendatastorage
  • Kapsayıcı adı: mnist

Kapsayıcıda doğrudan dört dosya mevcuttur:

  • train-images-idx3-ubyte.gz: eğitim kümesi görüntüleri (9.912.422 bayt)
  • train-labels-idx1-ubyte.gz: eğitim kümesi etiketleri (28.881 bayt)
  • t10k-images-idx3-ubyte.gz: test kümesi görüntüleri (1.648.877 bayt)
  • t10k-labels-idx1-ubyte.gz: test kümesi etiketleri (4.542 bayt)

Veri erişimi

Azure Notebooks

Azure Machine Learning tablolu veri kümelerini kullanarak MNIST'i bir veri çerçevesine yükleyin.

Azure Machine Learning veri kümeleri hakkında daha fazla bilgi için bkz . Azure Machine Learning veri kümeleri oluşturma.

Veri çerçevesine tam veri kümesi alma

from azureml.opendatasets import MNIST

mnist = MNIST.get_tabular_dataset()
mnist_df = mnist.to_pandas_dataframe()
mnist_df.info()

Veri çerçevelerini eğit ve test et

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

Basamakların bazı görüntülerini çizme

%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()

MNIST ham dosyaları Azure Machine Learning dosya veri kümelerini indirin veya bağlayın.

Bu yalnızca Linux tabanlı işlem için çalışır. Azure Machine Learning veri kümeleri hakkında daha fazla bilgi için bkz . Azure Machine Learning veri kümeleri oluşturma.

mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()

Dosyaları yerel depolama alanına indirme

import os
import tempfile

data_folder = tempfile.mkdtemp()
data_paths = mnist_file.download(data_folder, overwrite=True)
data_paths

Dosyaları bağlama. Eğitim işi uzak bir işlemde çalıştırıldığında kullanışlıdır.

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

Azure Machine Learning tablolu veri kümelerini kullanarak MNIST'i bir veri çerçevesine yükleyin.

Azure Machine Learning veri kümeleri hakkında daha fazla bilgi için bkz . Azure Machine Learning veri kümeleri oluşturma.

Veri çerçevesine tam veri kümesi alma

# 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))

MNIST ham dosyaları Azure Machine Learning dosya veri kümelerini indirin veya bağlayın.

Bu yalnızca Linux tabanlı işlem için çalışır. Azure Machine Learning veri kümeleri hakkında daha fazla bilgi için bkz . Azure Machine Learning veri kümeleri oluşturma.

mnist_file = MNIST.get_file_dataset()
mnist_file
mnist_file.to_path()

Dosyaları yerel depolama alanına indirme

import os
import tempfile

mount_point = tempfile.mkdtemp()
mnist_file.download(mount_point, overwrite=True)

Dosyaları bağlama. Eğitim işi uzak bir işlemde çalıştırıldığında kullanışlıdır.

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())

Sonraki adımlar

Açık Veri Kümeleri kataloğundaki diğer veri kümelerini görüntüleyin.