如何使用 Tensorflow.js 将大型数据集一分为二进行验证?
How do I split a large Dataset in 2 for validation with Tensorflow.js?
我在 Node.js 中使用 Tensorflow.js 和支持 Nvidia CUDA 的 GPU(请注意,这不是 Python),并且我已经实现了一个 AI 模型。我有一个 Dataset
对象,代表我想用来训练模型的输入数据。
但是,我想对我的数据进行 80% - 20% 的拆分,其中 80% 用于训练,20% 用于验证。
在 .fitDataset()
method 中,存在用于指定验证数据的 validationData
设置。
不幸的是,我只有一个数据集对象代表我的整个数据集。
此外,我的训练数据是临时的并且非常大 - 我的 Dataset
对象由生成器函数支持。为此,我希望 Dataset
对象的最后 20% 作为我的验证数据。
将单个 Dataset
对象拆分为 2 而无需将其全部加载到内存中以便我可以将其最后 20% 用作验证数据的最有效方法是什么?
数据不是全部加载到内存而是迭代加载。因此可以对加载的数据应用过滤以分成两个数据集
// first load the dataset
const csvDataset = tf.data.csv(csvUrl);
//split dataset
let i = 0;
trainDataset = csvDataset.filter(x => i++%5 !== 0)
i = 0
testDataset = csvDataset.filter(x => i++%5 === 0)
我在 Node.js 中使用 Tensorflow.js 和支持 Nvidia CUDA 的 GPU(请注意,这不是 Python),并且我已经实现了一个 AI 模型。我有一个 Dataset
对象,代表我想用来训练模型的输入数据。
但是,我想对我的数据进行 80% - 20% 的拆分,其中 80% 用于训练,20% 用于验证。
在 .fitDataset()
method 中,存在用于指定验证数据的 validationData
设置。
不幸的是,我只有一个数据集对象代表我的整个数据集。
此外,我的训练数据是临时的并且非常大 - 我的 Dataset
对象由生成器函数支持。为此,我希望 Dataset
对象的最后 20% 作为我的验证数据。
将单个 Dataset
对象拆分为 2 而无需将其全部加载到内存中以便我可以将其最后 20% 用作验证数据的最有效方法是什么?
数据不是全部加载到内存而是迭代加载。因此可以对加载的数据应用过滤以分成两个数据集
// first load the dataset
const csvDataset = tf.data.csv(csvUrl);
//split dataset
let i = 0;
trainDataset = csvDataset.filter(x => i++%5 !== 0)
i = 0
testDataset = csvDataset.filter(x => i++%5 === 0)