#python #tensorflow #machine-learning #keras #dataset
#python #тензорный поток #машинное обучение #keras #набор данных
Вопрос:
Я использую набор данных keras MNIST, который поставляется с обучающим набором из 60 тыс. изображений и тестовым набором из 10 тыс. изображений. В моем домашнем задании мне предлагается разделить обучающий набор на 50 тыс. для обучения и 10 тыс. для проверки. Я немного не уверен в том, как это сделать и / или подойти к этому, поскольку мне раньше не приходилось разбивать набор данных на определенные числа, подобные этому. Это код, который у меня есть до сих пор:
import numpy as np
import scipy
import matplotlib.pyplot as plt
from keras.datasets import mnist
from util import func_confusion_matrix
# load (downloaded if needed) the MNIST dataset
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# transform each image from 28 by28 to a 784 pixel vector
pixel_count = x_train.shape[1] * x_train.shape[2]
x_train = x_train.reshape(x_train.shape[0], pixel_count).astype('float32')
x_test = x_test.reshape(x_test.shape[0], pixel_count).astype('float32')
# normalize inputs from gray scale of 0-255 to values between 0-1
x_train = x_train / 255
x_test = x_test / 255
Ответ №1:
вы можете напрямую использовать пакет sklearn:
import numpy as np
import scipy
import matplotlib.pyplot as plt
from keras.datasets import mnist
from util import func_confusion_matrix
# load (downloaded if needed) the MNIST dataset
(x_train, y_train), (x_test, y_test) = mnist.load_data()
from sklearn.model_selection import train_test_split
x_train,x_val,y_train,y_val = train_test_split(x_train,y_train,test_size=0.1)
# here test_size=0.1 means you are selecting 10% of data for split.
Теперь у вас есть все данные в переменных x_train, x_test, x_val и y_train, y_test,y_val.
Комментарии:
1. Итак, 10% от 60 кб войдут в набор проверки?
2. ДА. Вы также можете прочитать определение функции отсюда
Ответ №2:
В этом конкретном случае данные mnist
предварительно перемешиваются, поэтому вы можете просто использовать индексацию, чтобы выбрать последние 10 000 наблюдений обучающего набора в качестве набора проверки.
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
y_val = y_train[-10000:]
x_val = x_train[-10000:]
x_train = x_train[:-10000]
y_train = y_train[:-10000]