1
votes

I'm currently training a Convolutional Neural Network on the MNIST data set using Keras. I'm loading the data set using the format

(X_train, Y_train), (X_test, Y_test) = mnist.load_data()

But to reduce iterating through all the data, I want to select only the first 10000 samples from each class 0-9 for X_train and similarly from Y_train. How can I do this?

2

2 Answers

2
votes

The MNIST dataset says it returns:

Return:

    2 tuples:
        X_train, X_test: uint8 array of grayscale image data with shape (nb_samples, 28, 28).
        y_train, y_test: uint8 array of digit labels (integers in range 0-9) with shape (nb_samples,).

So you need to slice just the parts you want to keep. I believe the syntax for pandas/numpy is something like:

X_train = X_train[:10000,:,:]
X_test = X_test[:10000,:,:]
y_train = y_train[:10000]
y_test  = y_test[:10000]
0
votes
from keras.datasets import mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train[:1000,:,:]
x_test = x_test[:500,:,:]
y_train = y_train[:1000]
y_test  = y_test[:500]


print(len(x_train))
print(len(y_train))
print(len(x_test))
print(len(y_test))

#output

> 1000 
> 1000 
> 500 
> 500