从 MNIST 数据集更改训练集和测试集的大小
Change size of train and test set from MNIST Dataset
我正在使用 MNIST 和 Keras 来学习 CNN。我正在 Keras API 下下载手写数字的 MNIST 数据库,如下所示。数据集已分为 60.000 张用于训练的图像和 10.000 张用于测试的图像(参见 Dataset - Keras Documentation)。
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
如何加入训练集和测试集,然后将它们分成 70% 用于训练和 30% 用于测试?
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 测试,因此只有一个连接解决方法。
您还可以从 http://yann.lecun.com/exdb/mnist/ 下载 MNIST 数据集并手动对其进行预处理,然后将其连接(根据需要)。但是,据我了解,它被分为 60000 个用于训练的示例和 10000 个用于测试的示例,因为这种拆分用于标准基准测试。
我正在使用 MNIST 和 Keras 来学习 CNN。我正在 Keras API 下下载手写数字的 MNIST 数据库,如下所示。数据集已分为 60.000 张用于训练的图像和 10.000 张用于测试的图像(参见 Dataset - Keras Documentation)。
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
如何加入训练集和测试集,然后将它们分成 70% 用于训练和 30% 用于测试?
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 测试,因此只有一个连接解决方法。
您还可以从 http://yann.lecun.com/exdb/mnist/ 下载 MNIST 数据集并手动对其进行预处理,然后将其连接(根据需要)。但是,据我了解,它被分为 60000 个用于训练的示例和 10000 个用于测试的示例,因为这种拆分用于标准基准测试。