首页 > 解决方案 > 如何在 Tensorflow 中对 10% 的数据集进行采样?

问题描述

我有一个 mnist 数据集,我想将其中的 10% 用作验证集。我如何在 TensorFlow 中做到这一点?

标签: pythontensorflow

解决方案


您可以使用数据集方法,如 dataset.take() 和 dataset.skip() 来提取部分数据并根据需要使用它,用于训练、测试或验证。

或者,您可以使用scikit learn将数据拆分为测试和(培训+验证)数据,然后将(培训+验证)数据再次拆分为单独的培训和验证。

import sklearn.model_selection as sk

X_train_val, X_test, y_train_val, y_test = sk.train_test_split(features,labels,test_size=0.5, random_state = 5)

X_train, X_val, y_train, y_val = sk.train_test_split(X_train_val,y_train_val,test_size=0.2, random_state = 5)

请记住调整第二次拆分,以便测试大小是完整数据集而不是 train_val 数据集的所需 % (总数据集的 50% 的 20% 是 10% )


推荐阅读