Module: DNN::MNIST

Defined in:
lib/dnn/lib/mnist.rb

Defined Under Namespace

Classes: MNISTLoadError

Class Method Summary collapse

Class Method Details

.load_images(file_name) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/dnn/lib/mnist.rb', line 42

def self.load_images(file_name)
  images = nil
  Zlib::GzipReader.open(file_name) do |f|
    magic, num_images = f.read(8).unpack("N2")
    rows, cols = f.read(8).unpack("N2")
    images = _mnist_load_images(f.read, num_images, cols, rows)
  end
  images
end

.load_labels(file_name) ⇒ Object



52
53
54
55
56
57
58
59
# File 'lib/dnn/lib/mnist.rb', line 52

def self.load_labels(file_name)
  labels = nil
  Zlib::GzipReader.open(file_name) do |f|
    magic, num_labels = f.read(8).unpack("N2")
    labels = _mnist_load_labels(f.read, num_labels)
  end
  labels
end

.load_test ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dnn/lib/mnist.rb', line 26

def self.load_test
  test_images_file_name = "mnist/t10k-images-idx3-ubyte.gz"
  test_labels_file_name = "mnist/t10k-labels-idx1-ubyte.gz"
  unless File.exist?(test_images_file_name)
    raise MNISTLoadError.new(%`file "#{train_images_file_name}" is not found.`)
  end
  unless File.exist?(test_labels_file_name)
    raise MNISTLoadError.new(%`file "#{train_labels_file_name}" is not found.`)
  end
  images = load_images(test_images_file_name)
  labels = load_labels(test_labels_file_name)
  [images, labels]
end

.load_train ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/dnn/lib/mnist.rb', line 12

def self.load_train
  train_images_file_name = "mnist/train-images-idx3-ubyte.gz"
  train_labels_file_name = "mnist/train-labels-idx1-ubyte.gz"
  unless File.exist?(train_images_file_name)
    raise MNISTLoadError.new(%`file "#{train_images_file_name}" is not found.`)
  end
  unless File.exist?(train_labels_file_name)
    raise MNISTLoadError.new(%`file "#{train_labels_file_name}" is not found.`)
  end
  images = load_images(train_images_file_name)
  labels = load_labels(train_labels_file_name)
  [images, labels]
end