首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理Keras DataGenerator中的不同长度实体?

如何处理Keras DataGenerator中的不同长度实体?
EN

Data Science用户
提问于 2020-02-06 10:32:09
回答 1查看 294关注 0票数 1

我正在解决一个预测问题,在这个问题中,我需要根据多篇文章在过去7天的表现来预测需求。为了充分利用这些数据,我尝试实现滚动窗口方法,使用7天作为培训输入(x),使用第8天的性能作为培训标签(y)。

由于我正在使用Keras作为一个深度学习框架,如何将这种滚动窗口方法与自定义数据生成器(在培训期间为我的网络提供信息)结合起来呢?不同的条款有不同的数据长度(即A条有200天的数据,B条只有10天的数据)。

我实现了一个版本,在这个版本中,我每一篇文章只使用一个样本,但这大大减少了我培训的数据量。

EN

回答 1

Data Science用户

发布于 2020-10-09 16:08:00

我遇到了类似的问题,我想出的快速解决方案是迭代主数据集,为每个子集创建一个TimeseriesGenerator实例,并将其提供给模型。因此,在您的情况下,这将是:遍历文章集合,为每一篇文章实例化TimeseriesGenerator并将窗口样例提供给您的模型,即:

代码语言:javascript
运行
复制
from keras.preprocessing.sequence import TimeseriesGenerator

# Set the training parameters
window_length = ...
ix0, ix1 = ...
batch_size = ...

for article in articles:
        # Insert your code to generate the article's features and targets
        x, y = ...

        model.fit_generator(TimeseriesGenerator(
                        x,
                        y,
                        window_length,
                        batch_size=batch_size,
                        start_index=ix0,
                        end_index=ix1
                ),
                steps_per_epoch=int(np.ceil((x.shape[0] - ix0 - ix1 - window_length)/float(batch_size))),
                epochs=50,
                verbose=1
        )

现在,根据您的数据集大小和组合,您可以:

  • 每一篇文章运行多个历元
  • 或者每个时代训练一篇文章,但要做到这一点,你需要另一个循环。
票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/67637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档