我对Keras并不陌生,所以我想从tutorial开始。大概在开始时,就是代码行
将经过改组的MNIST数据加载到训练和测试集中
(X_train,y_train),(X_test,y_test)= mnist.load_data()
出现。我想知道Keras如何知道哪些数据是培训的一部分,哪些是测试的一部分?尽管这是一个基本问题,但我无法在Keras文档中看到特定的定义(搜索甚至在此处均未提供任何结果)。 因此,感谢您的帮助,因为我经常在Keras中找不到任何命令定义。对于其他语言,例如C ++,R,Python等,很容易找到一些定义。但是对于Keras来说,即使是google也没有向我提供有用的搜索结果(至少在前2页中没有)。
TL; DR:load_data()如何知道什么是数据集的训练和测试?
答案 0 :(得分:1)
对于Keras的源代码,我建议搜索Github存储库-例如Google“ keras mnist github”。从source code到mnist.load_data()
,将数据集( pickled )解压缩,将其提取为一种格式,该格式可以提取数据,如源代码所示(也预分类为训练与测试,预先洗牌等)。
然后,Keras以您上面使用的形式返回解压缩的数据。
答案 1 :(得分:1)
找出答案的最佳方法是查看Kera的code:
def load_data(path='mnist.npz'):
path = get_file(path, origin='https://s3.amazonaws.com/img-datasets/mnist.npz', file_hash='8a61469f7ea1b51cbae51d4f78837e45')
with np.load(path, allow_pickle=True) as f:
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test'], f['y_test']
return (x_train, y_train), (x_test, y_test)
您可以看到,基本上是在下载一个包含数据集的文件,该数据集已经分为训练数据和测试数据。
唯一的参数(path
基本上是存储下载的数据集的位置。