paddlets.models.dl.paddlepaddle.adapter.data_adapter
- class DataAdapter[源代码]
基类:
object数据转换类,用于将
paddlets.TSDataset数据集转换为paddle.io.Dataset样本数据集和paddle.io.DataLoader样本数据批量加载器。- to_paddle_dataset(rawdataset: TSDataset, in_chunk_len: int = 1, out_chunk_len: int = 1, skip_chunk_len: int = 0, sampling_stride: int = 1, time_window: Optional[Tuple] = None) PaddleDatasetImpl[源代码]
将
paddlets.TSDataset数据集转换为paddle.io.Dataset样本数据集。- 参数
rawdataset (TSDataset) – 原始的 paddle.TSDataset 数据集,用于构建
paddle.io.Dataset样本数据集。in_chunk_len (int) – 模型输入的时间序列长度。
out_chunk_len (int) – 模型输出的序列长度。
skip_chunk_len (int) – 可选变量, 输入序列与输出序列之间跳过的序列长度,既不作为特征也不作为预测目标使用,默认值为0。
sampling_stride (int, optional) – 在第i条样本和第i+1条样本之间跨越的时间步数。 具体来说,令 t 为target时序数据的时间索引,t[i] 为第i条样本的起始时间,t[i+1]`为第i+1条样本的起始时间, 则`sampling_stride`代表 `t[i+1] - t[i] 的计算结果,即2条相邻的样本之间相差的时间点的数量。
time_window (Tuple, optional) – 一个包含2个元素的元组类型的时间窗口,允许adapter模块在其范围内构建样本。 time_window[0] 值代表窗口范围的下界,time_window[1] 值代表窗口范围的上界。 对于每一个包含在该左闭右闭范围内的元素,都代表一条样本的尾部索引。
- 返回
构建完成的 PaddleDatasetImpl 实例。
- 返回类型
- to_paddle_dataloader(paddle_dataset: PaddleDatasetImpl, batch_size: int, collate_fn: Optional[Callable] = None, shuffle: bool = True) DataLoader[源代码]
将
paddle.io.Dataset样本数据集转换为paddle.io.DataLoader样本批量加载器。- 参数
paddle_dataset (PaddleDatasetImpl) – 原始的
TSDataset数据集,用于构建paddle.io.DataLoader样本批量构建器。batch_size (int) – 单个数据批量中包含的样本条数。
collate_fn (Callable, optional) – 用户自定义的单批量样本整合函数,可选参数。
shuffle (bool, optional) – 是否在生成批量样本之前对数据进行洗牌。默认为True。
- 返回
一个构建完成的paddle样本批量数据加载器。
- 返回类型
PaddleDataLoader
实际案例
# Given: batch_size = 4 in_chunk_len = 3 out_chunk_len = 2 known_cov_chunk_len = in_chunk_len + out_chunk_len = 3 + 2 = 5 observed_cov_chunk_len = in_chunk_len = 3 target_col_num = 2 (target column number, e.g. ["t0", "t1"]) known_cov_col_num = 3 (known covariates column number, e.g. ["k0", "k1", "k2"]) observed_cov_col_num = 1 (observed covariates column number, e.g. ["obs0"]) # Built DataLoader instance: dataloader = [ # 1st batch { "past_target": paddle.Tensor(shape=(batch_size, in_chunk_len, target_col_num)), "future_target": paddle.Tensor(shape=(batch_size, out_chunk_len, target_col_num)), "known_cov": paddle.Tensor(shape=(batch_size, known_cov_chunk_len, known_cov_col_num)), "observed_cov": paddle.Tensor(shape=(batch_size, observed_cov_chunk_len, observed_cov_col_num)) }, # ... # N-th batch { "past_target": paddle.Tensor(shape=(batch_size, in_chunk_len, target_col_num)), "future_target": paddle.Tensor(shape=(batch_size, out_chunk_len, target_col_num)), "known_cov": paddle.Tensor(shape=(batch_size, known_cov_chunk_len, known_cov_col_num)), "observed_cov": paddle.Tensor(shape=(batch_size, observed_cov_chunk_len, observed_cov_col_num)) } ]