From: Martin Pitt Date: Sat, 29 Aug 2020 05:45:10 +0000 (+0200) Subject: Rearange image vector X-Git-Url: https://piware.de/gitweb/?p=handwriting-recognition.git;a=commitdiff_plain;h=8af4223121b60d5d67b7121d87c5c6fed01b58e7 Rearange image vector Put each image into a column instead of a row, which works much better with the standard formulation of backpropagation algorithms. --- diff --git a/mnist.py b/mnist.py index 1a3870f..4c2832c 100644 --- a/mnist.py +++ b/mnist.py @@ -11,8 +11,8 @@ def load(images_file, labels_file): rows = struct.unpack('>I', f.read(4))[0] cols = struct.unpack('>I', f.read(4))[0] images = np.frombuffer(f.read(), dtype=np.uint8, count = num * rows * cols) - # split them up into an array of flat image vectors, so that first axis corresponds to labels - images = images.reshape(num, rows * cols) + # split them up into an array of flat image column vectors + images = images.reshape(num, rows * cols).T with open(labels_file, 'rb') as f: # validate magic diff --git a/read_display_mnist.py b/read_display_mnist.py index fd85ee3..3030a0b 100755 --- a/read_display_mnist.py +++ b/read_display_mnist.py @@ -10,5 +10,5 @@ train_images, train_labels, rows, cols = mnist.load('train-images-idx3-ubyte', ' # show the first bunch of training data for i in range(10): print(f'train image #{i}: label {train_labels[i]}') - plt.imshow(train_images[i].reshape(rows, cols), cmap='gray') + plt.imshow(train_images[:, i].reshape(rows, cols), cmap='gray') plt.show()