我正在使用MNIST和Keras来了解CNN。我正在Keras API下载手写数字的MNIST数据库,如下所示。数据集已经分为60,000个图像用于训练,10,000个图像用于测试
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)
为可重复性设置随机种子。
via numpy(如果你不使用sklearn):
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只是从分割为60000/10000测试的url中获取此数据,因此只有一个连接解决方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。