python - tf.data.Dataset 与步进批次
问题描述
我有一个包含 8760 个样本的时间数据集。不知道有没有办法以step为1来批量,即:第一批包含No.1到4,第二批包含No.2到5,第三批包含No.3到6等
解决方案
由于您只有 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]
推荐阅读
- swift - AudioKit:createVirtualPorts 不转发端口 ID
- json - 允许属性为任何字符串
- python - 将包含字符串时间格式的列转换为分钟
- python - Conv2d层中的filter参数是什么意思?
- continuous-integration - [Bitbucket][Pipelines] 获取启动管道的用户名
- java - 将方法从一个类移动到另一个类
- excel - VBA从一个Excel工作表复制到另一个
- mysql - 如何在 MySQL 中插入特殊字符
- android - 如何将文件复制到 Android 的 /system 文件夹
- git - 'git add -u' 暂存所有 repo 文件