Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一个大型数据集拆分为2,以便使用Tensorflow.js进行验证?_Javascript_Node.js_Artificial Intelligence_Tensorflow.js - Fatal编程技术网

Javascript 如何将一个大型数据集拆分为2,以便使用Tensorflow.js进行验证?

Javascript 如何将一个大型数据集拆分为2,以便使用Tensorflow.js进行验证?,javascript,node.js,artificial-intelligence,tensorflow.js,Javascript,Node.js,Artificial Intelligence,Tensorflow.js,我在Node.js中使用了一个支持Nvidia CUDA的GPU(请注意,这不是Python),并且我已经实现了一个AI模型。我有一个Dataset对象,它表示我想要训练模型的输入数据 然而,我想对我的数据进行80%-20%的分割,其中80%用于培训,20%用于验证 在中,存在用于指定验证数据的validationData设置 但不幸的是,我只有一个Dataset对象来表示我的整个Dataset 此外,我的训练数据是临时的,而且非常大,我的Dataset对象由生成器函数支持。为此,我希望最后20

我在Node.js中使用了一个支持Nvidia CUDA的GPU(请注意,这不是Python),并且我已经实现了一个AI模型。我有一个
Dataset
对象,它表示我想要训练模型的输入数据

然而,我想对我的数据进行80%-20%的分割,其中80%用于培训,20%用于验证

在中,存在用于指定验证数据的
validationData
设置

但不幸的是,我只有一个Dataset对象来表示我的整个Dataset

此外,我的训练数据是临时的,而且非常大,我的
Dataset
对象由生成器函数支持。为此,我希望最后20%的
数据集
对象充当我的验证数据


在不将单个
数据集
对象全部加载到内存中的情况下,将其拆分为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)

啊,我明白了。不过,我不太理解那里的
I
变量。它在哪里递增?无论如何,如果我只想要最后一个连续的20%,并且我知道我有多少个条目,我可以过滤
I>=total*0.8
?对不起,我忘了增加
I
。如果您想要最后20%,并且知道最初有多少行,可以使用
skip
操作符。如果需要第一行,可以使用
take
操作符