TensorFlow中数据集的结构如何?

时间:2019-04-18 19:57:05

标签: tensorflow dataset

在我的第一个TensorFlow项目中,我有一个大数据集(1M个元素),其中包含8类元素,每个类别当然都有不同数量的元素。我想将大数据集划分为10个独家小数据集,每个小数据集各占大约1/10。 (这是用于十折交叉验证的目的。)

这是我的工作方式。 我最终拥有80个数据集,每个类别都有10个小型数据集,然后我使用sample_from_datasets从80个数据集中随机采样。但是,经过一些步骤,我遇到了很多警告,说“ DirectedInterleave选择了一个穷举的输入:36”,其中36可以是其他一些整数。

我想做sample_from_datasets的原因是我试图对原始数据集进行混洗。即使仅洗净0.4 x总元素,仍需要很长时间才能完成(约20分钟)。

我的问题是 1.根据我的情况,关于如何构建数据集的任何好的建议? 2.洗牌时间长是否正常?有没有更好的改组解决方案? 3.为什么我要让DirectIngerleave选择一个用尽的输入:警告?这是什么意思?

谢谢。

1 个答案:

答案 0 :(得分:0)

将您的整个数据集分为训练,测试和验证类别。拥有1M数据后,您可以按以下方式拆分:60%的培训,20%的测试和20%的验证。数据集的分割完全取决于您和您的要求。但是通常使用最大数据来训练模型。接下来,其余的数据集可用于测试和验证。 当您拥有十个班级数据集时,将每个类别划分为“训练”,“测试”和“验证”类别。

让我们拥有A,B,C和D类别数据。如下拆分数据“ A”,“ B”,“ C”和“ D”:

'A'- 60%用于训练20%测试和20%验证

'B'- 60%用于训练20%测试和20%验证

'C'- 60%用于训练20%测试和20%验证

'D'- 60%用于训练20%测试和20%验证

最后合并所有A,B,C和D训练,测试和验证数据集。