Prepares various MNIST-style image classification datasets and optionally downloads them. Images are thumbnails images of 28 x 28 pixels of grayscale values encoded as integer.

mnist_dataset(
  root = tempdir(),
  train = TRUE,
  transform = NULL,
  target_transform = NULL,
  download = FALSE
)

kmnist_dataset(
  root = tempdir(),
  train = TRUE,
  transform = NULL,
  target_transform = NULL,
  download = FALSE
)

qmnist_dataset(
  root = tempdir(),
  split = "train",
  transform = NULL,
  target_transform = NULL,
  download = FALSE
)

fashion_mnist_dataset(
  root = tempdir(),
  train = TRUE,
  transform = NULL,
  target_transform = NULL,
  download = FALSE
)

emnist_dataset(
  root = tempdir(),
  split = "test",
  kind = "balanced",
  transform = NULL,
  target_transform = NULL,
  download = FALSE
)

Arguments

root

Root directory for dataset storage. The dataset will be stored under root/<dataset-name>. Defaults to tempdir().

train

Logical. If TRUE, use the training set; otherwise, use the test set. Not applicable to all datasets.

transform

Optional. A function that takes an image and returns a transformed version (e.g., normalization, cropping).

target_transform

Optional. A function that transforms the label.

download

Logical. If TRUE, downloads the dataset to root/. If the dataset is already present, download is skipped.

split

Character. Used in emnist_dataset() and qmnist_dataset() to specify the subset. See individual descriptions for valid values.

kind

change the classes into one of "byclass", "bymerge", "balanced" representing the kind of emnist dataset. You can look at dataset attribute $classes to see the actual classes.

Value

A torch dataset object, where each items is a list of x (image) and y (label).

Details

  • MNIST: Original handwritten digit dataset.

  • Fashion-MNIST: Clothing item images for classification.

  • Kuzushiji-MNIST: Japanese cursive character dataset.

  • QMNIST: Extended MNIST with high-precision NIST data.

  • EMNIST: Letters and digits with multiple label splits.

Functions

  • kmnist_dataset(): Kuzushiji-MNIST cursive Japanese character dataset.

  • qmnist_dataset(): Extended MNIST dataset with high-precision test data (QMNIST).

  • fashion_mnist_dataset(): Fashion-MNIST clothing image dataset.

  • emnist_dataset(): EMNIST dataset with digits and letters and multiple split modes.

Supported kinds for emnist_dataset()

  • "byclass": 62 classes (digits + uppercase + lowercase)

  • "bymerge": 47 classes (merged uppercase and lowercase)

  • "balanced": 47 classes, balanced digits and letters

  • "letters": 26 uppercase letters

  • "digits": 10 digit classes

  • "mnist": Standard MNIST digit classes

Supported splits for qmnist_dataset()

  • "train": 60,000 training samples (MNIST-compatible)

  • "test": Extended test set

  • "nist": Full NIST digit set

Examples

if (FALSE) { # \dontrun{
ds <- mnist_dataset(download = TRUE)
item <- ds[1]
item$x  # image
item$y  # label

qmnist <- qmnist_dataset(split = "train", download = TRUE)
item <- qmnist[1]
item$x
item$y

emnist <- emnist_dataset(kind = "balanced", split = "test", download = TRUE)
item <- emnist[1]
item$x
item$y

kmnist <- kmnist_dataset(download = TRUE, train = FALSE)
fmnist <- fashion_mnist_dataset(download = TRUE, train = TRUE)
} # }