【问题标题】:tf.data.Dataset with stepping batchestf.data.Dataset 与步进批次
【发布时间】:2020-02-08 12:14:17
【问题描述】:

我有一个包含 8760 个样本的时间数据集。不知道有没有办法以step为1来批量,即:第一批包含No.1到4,第二批包含No.2到5,第三批包含No.3到6等

【问题讨论】:

    标签: python tensorflow tensorflow-datasets


    【解决方案1】:

    由于您只有 8760 个样本,您可能可以负担(就 RAM 成本而言)最简单的解决方案 - 只需使用普通 Python 代码转换您的数据:

    dataset = [sample1, sample2, ... sample8760]
    transformed_dataset = []
    for i in range(len(dataset) - 3):
        transformed_dataset.append(dataset[i:i + 4])
    

    如果您无法将数据集存储在内存中,请尝试使用生成器函数(从 TF 2.1 开始,您可以将生成器直接传递给 model.fit()

    def dataset_generator():
         for i in range(len(dataset) - 3):
             yield dataset[i:i + 4]
    

    【讨论】:

    • 这是我第一次提出问题。你能看看我做得对吗?
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多