io_mnist.py 976 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from mnist import MNIST
  2. import numpy as np
  3. def load_samples(training):
  4. """
  5. training : load training data if true, load testing data otherwise
  6. Return np_images, np_expected
  7. where
  8. np_impages is a np.array of 784 x 60 000
  9. np_expected is a np.array of 10 x 60 000
  10. """
  11. mndata = MNIST('../resources/download')
  12. images = [[]] # Contains vectors of 784 pixels image
  13. labels = [] # Contains expected response for each image
  14. if (training):
  15. images, labels = mndata.load_training()
  16. else:
  17. images, labels = mndata.load_testing()
  18. np_images = np.array(images, dtype=np.float64)
  19. # Normalize data between 0.0 and 1.0
  20. np_images /= 255
  21. # Contstruct expected outputs
  22. np_expected = np.zeros((len(labels), 10))
  23. for k, label in enumerate(labels):
  24. np_expected[k][label] = 1.0
  25. return np.transpose(np_images), np.transpose(np_expected)
  26. def load_training_samples():
  27. return load_samples(training = True)
  28. def load_testing_samples():
  29. return load_samples(training = False)