Изменить размер поезда и тестового набора из набора данных MNIST - PullRequest
0 голосов
/ 23 января 2019

Я использую MNIST и Keras для изучения CNN. Я загружаю базу данных рукописных цифр MNIST под API Keras, как показано ниже. Набор данных уже разделен на 60 000 изображений для обучения и 10 000 изображений для тестирования (см. Набор данных - Документация Keras ).

from keras.datasets import mnist

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

Как я могу присоединиться к тренировочным и тестовым наборам, а затем разделить их на 70% для обучения и 30% для тестирования?

1 Ответ

0 голосов
/ 23 января 2019

Нет такого аргумента в mnist.load_data.Вместо этого вы можете объединить данные с помощью numpy, а затем разделить с помощью sklearn (или numpy):

from keras.datasets import mnist
import numpy as np
from sklearn.model_selection import train_test_split

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x = np.concatenate((x_train, x_test))
y = np.concatenate((y_train, y_test))

train_size = 0.7
x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=train_size, random_seed=2019)

Установить случайное начальное число для воспроизводимости.

Через numpy (если вы не используете sklearn):

# do the same concatenation
np.random.seed(2019)
train_size = 0.7
index = np.random.rand(len(x)) < train_size  # boolean index
x_train, x_test = x[index], x[~index]  # index and it's negation
y_train, y_test = y[index], y[~index]

Вы получите массивы приблизительно необходимого размера (~ 210xx вместо 21000 тестового размера).

Исходный код mnist.load_data похоже, что эта функция просто выбирает эти данные из URL-адреса, уже разделенного как тест 60000/10000, поэтому существует только обходной путь объединения.

Вы также можете загрузить набор данных MNIST из http://yann.lecun.com/exdb/mnist/ и предварительно обработать еговручную, а затем объединить его (как вам нужно).Но, насколько я понимаю, он был разделен на 60000 примеров для обучения и 10000 для тестирования, потому что это расщепление используется в стандартных тестах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...