r2dtools / mnist

Package provides a simple interface to parse and use the MNIST database

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MNIST Golang

The MNIST database is a dataset of handwritten digits. It has 60,000 training samples, and 10,000 test samples. Each image is represented by 28x28 pixels, each containing a value 0 - 255 with its grayscale value. For more information and to download the database, see .

Package provides a simple interface to parse and use the MNIST database. It can automatically download the database files (and cache) or you can download the database files manually to be easly loaded with the LoadData function. Also the package supports convertation of base data structures to [gonum](https://www.gonum.org/) matrices.

Automatically download and parse MNIST database files

import github.com/r2dtools/mnist/loader

train, test, err := loader.LoadData("")
if err != nil {
    panic(err)
}

trainSlice := train.Slice(0, 1000)

trainImages := train.Images
trainLabels := train.Labels

testImages := test.Images
testLabels := test.Labels

Use already downloaded database files

import github.com/r2dtools/mnist/loader

train, test, err := loader.LoadData("/working/directory")
if err != nil {
    panic(err)
}

....

Convert base data structures to gonum Matrix

import (
    github.com/r2dtools/mnist/dense
    github.com/r2dtools/mnist/loader
)

train, test, err := loader.LoadData("")
if err != nil {
    panic(err)
}

images := dense.NewImageDenses(train.Images, 1, loader.ImageWidth*loader.ImageHeight) // convert images data to a slice of gonum matrices with dimension 1x784
labels := dense.NewLabelVecDense(train.Labels)

normalizedImages := dense.NewNormalizedImageDenses(train.Images, 1, loader.ImageWidth*loader.ImageHeight, 255) // convert images data to a slice of gonum matrices with dimension 1x784. Devide all element by 255

....

About

Package provides a simple interface to parse and use the MNIST database

License:MIT License


Languages

Language:Go 100.0%