gpt4 book ai didi

python - 如何将 Keras 数据生成器(或不同的方法)与多个不同长度的 .npy 文件一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:58 25 4
gpt4 key购买 nike

我正在处理包含 30,000 个 .npy 文件的数据集。每个文件包含以下形式的矩阵:(75, N),其中75是列数,代表特征的数量。N:行数,这些特征的值随时间变化并且因文件而异。

我尝试使用 keras 文档中提到的 TimeseriesGenerator here :

data_gen = TimeseriesGenerator(data, targets,
length=10, sampling_rate=2,
batch_size=2)
  1. 如何对多个 npy 文件使用此方法?
  2. 每个文件都必须与目标数组或每列中的类匹配吗?

最佳答案

我通过创建自定义序列解决了这个问题。自定义序列连接不同的序列。这样,当某个时间序列结束时,将给出较小的批处理,然后继续下一个序列。

from keras.utils import Sequence

class ConcatGenerator(Sequence):
# series is a list of timeseires generators
def __init__(self, series, *args, **kwargs):
super(*args, **kwargs)
self.series = series

def __len__(self):
return sum([len(s) for s in self.series])

def __getitem__(self, idx):
cur = 0
while idx >= len(self.series[cur]):
idx -= len(self.series[cur])
cur += 1
return self.series[cur][idx]

请注意,这是玩具代码,您可以提高获取项目的效率。

因此,在您的情况下,您可以从每个 npy 文件创建一个时间序列生成器,然后使用它们创建一个 ConcatGenerator。

关于python - 如何将 Keras 数据生成器(或不同的方法)与多个不同长度的 .npy 文件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56867476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com