从tensorflow数据集中的元组中获取样本

从tensorflow数据集中的元组中获取样本,tensorflow,keras,dataset,Tensorflow,Keras,Dataset,我有一个时间序列特性(numpy数组)和一个标签(时间步长相同,也有numpy数组)。我使用了来自_array()的tf.keras.preprocessing.timeseries_dataset_来获取(feature(batched)、labels(batched))的元组 我的问题是,我想把它分为培训和验证(测试已经分开了)。我希望它被洗牌和加窗,所以我不能在timeseries\u dataset\u from\u array()方法之前这样做,之后,我有一个元组。我可以做: (tra

我有一个时间序列特性(numpy数组)和一个标签(时间步长相同,也有numpy数组)。我使用了来自_array()的tf.keras.preprocessing.timeseries_dataset_来获取(feature(batched)、labels(batched))的元组

我的问题是,我想把它分为培训和验证(测试已经分开了)。我希望它被洗牌和加窗,所以我不能在timeseries\u dataset\u from\u array()方法之前这样做,之后,我有一个元组。我可以做:

(train_功能,train_标签)=(output_tuple[0]。获取(num_training_sample),output_tuple[1]。获取(num_training_sample))

或者这会改变要素和标签的顺序吗

更新: 我有以下几点

#feature of size (2757698, 21, 4, 1) time series array
#labels of size (2757698, 3)

w = (timeseries_dataset_from_array(
          features[:train_size, :, :],
          self.target[:train_size, :], self.WINDOW_SIZE, sequence_stride=1, sampling_rate=1,
          batch_size=batch_size, shuffle=True, start_index=start,
          end_index=end))


# output is a tuple as a batch of size ((256, 60, 21, 4, 1), (256, 3)), 60 is the window size
输出是一个生成器,您可以将其提供给您的模型。fit()


我需要的是,在洗牌之后,将这个train_数据集拆分为train和validation。正如您所看到的,我已经从末尾选取了最新的测试数据。

您可以添加您尝试过的代码吗?您得到的输出和预期的输出。我添加了我拥有的简单代码。我有功能和标签(都是numpy数组),我需要的是打开它们(在一段时间内滑动窗口),洗牌,将数据分解为训练和验证,批量训练。来自\u数组的timeseries\u数据集\u执行除拆分之外的所有操作!关于如何处理这个问题有什么帮助吗?你能添加你尝试过的代码吗?您得到的输出和预期的输出。我添加了我拥有的简单代码。我有功能和标签(都是numpy数组),我需要的是打开它们(在一段时间内滑动窗口),洗牌,将数据分解为训练和验证,批量训练。来自\u数组的timeseries\u数据集\u执行除拆分之外的所有操作!关于如何处理这个问题有什么帮助吗?