2017-09-29 424 views
-2

我已经看了几个教程,使用卷积神经网络深入Keras深入学习。在本教程中(在Keras的官方文档),该数据集MNIST加载像这样:Keras中x_train和x_test有什么区别?

from keras.datasets import mnist 

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

然而,上诉人没有作出解释,为什么我们有两个数据元组。我的问题是:什么x_trainy_train以及他们如何从他们x_testy_test同行有什么不同?

+0

我不知道该子集的内容是不同的,但一个是培训,另一种是用于测试。你想使用不同的数据进行测试,以确保你没有过度使用。编辑:至于为什么他们以这种方式分开对所有来到一起,你只是自己切片,我不知道。 –

+1

[在神经网络中训练,验证和测试集有什么区别?](https:// stackoverflow。问题/ 2976452 /什么是差异之间的火车验证和测试设置在神经网络) – fuglede

回答

3

训练集是用于训练模型的数据集的子集。

  • x_train是训练数据集。
  • y_train是一组标签来在x_train所有数据。

测试集是数据集的一个子集,您可以在模型经过验证集初始审核后用来测试您的模型。

  • x_test是测试数据集。
  • y_test是一组标签来在x_test所有数据。

验证集是您用来调整超参数的数据集的一个子集(与训练集分开)。

  • 您列出的示例没有提到验证集。

我在Youtube上做了一个Deep Learning with Keras playlist。它包含了开始使用Keras的基础知识,还有一些视频演示了如何将图像组织成火车/有效/测试集,以及如何让Keras为您创建验证集。看到这个实现可能会帮助你更好地掌握这些不同数据集在实践中的使用方式。

+0

感谢您的播放列表链接!我会看看。 –

1

的所有机器学习算法的最终目标是推广到新的数据。如果您根据所有数据创建模型,则不会针对模型如何对新数据执行度量。为了解决这个问题,我们通常会将列车数据分为三部分,列车数据集,开发/调整数据集和测试数据集。让我们举个例子把数据分成两部分,训练和测试。在这种情况下,您首先将数据分为60/70/80%火车和40/30/20测试,并应用10倍交叉验证和网格搜索,这对调整也很有帮助。请注意,直到这一次你正在训练和调整你的训练数据(在调试阶段你永远不会碰到你测试数据,甚至没有看到它的分布或任何东西)。 一旦您生成了模型,就可以在测试数据上运行它,并在测试数据上获得模型的性能。这将用作未知数据模型的性能指标。