是否有keras方法来分割数据?

Cer*_*ope 9 python machine-learning scikit-learn keras

我认为标题是自我解释的,但要详细询问,有sklearn的方法train_test_split(),其工作方式如下:X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, stratify = Y)这意味着:该方法将以0.3:0.7的比例分割数据,并尝试使两个数据中的标签百分比相等.是否有相当于此的keras?

dtu*_*ene 5

现在使用 keras Dataset 类。我正在运行 keras-2.2.4-tf 以及新的张量流版本。

基本上,使用类似 的方法将所有数据加载到数据集中tf.data.Dataset.from_tensor_slices。然后将数据分割成新的数据集以进行训练和验证。例如,打乱数据集中的所有记录。然后使用除前 400 个之外的所有数据作为训练,使用前 400 个作为验证。

ds = ds_in.shuffle(buffer_size=rec_count)
ds_train = ds.skip(400)
ds_validate = ds.take(400)
Run Code Online (Sandbox Code Playgroud)

Dataset 类的实例是 Keras 模型传递的自然容器。我从张量流或 keras 训练示例中复制了这个概念,但似乎无法再次找到它。

使用该load_data方法创建的罐装数据集创建 numpy.ndarray 类,因此它们略有不同,但可以轻松转换为 keras 数据集。我怀疑这还没有完成,因为很多现有代码都会被破坏。


Fai*_*ist 1

不幸的是,答案(尽管我们希望如此)是否定的!有一些现有的数据集,如 MNIST 等,可以直接加载:

(X_train, y_train), (X_test, y_test) = mnist.load_data()
Run Code Online (Sandbox Code Playgroud)

这种以分割方式直接加载的方式让人错误地希望有一种通用方法,但不幸的是,这里不存在这种方法,尽管您可能有兴趣在 Keras 上使用 SciKit-Learn 的包装器

DataScience SE 上有几乎类似的问题