【发布时间】:2019-05-23 18:14:23
【问题描述】:
我正在寻找一种等效于 tensorflow 的方法来重新采样时间序列张量。
我有一个具有以下维度的张量 [batch_size, time, feature]。我想要实现的是一种创建新张量的方法 这会将几个时间步聚合在一起,新功能应该是一些聚合函数(假设是平均值)。
例如,如果这是原始数据:
batch_size | time | feature
0 | 0 | 1
0 | 1 | 4
0 | 2 | 7
0 | 3 | 1
1 | 0 | 2
1 | 1 | 8
...
N=? | T=? | ?
我想每 2 个时间步重新采样一次,结果应该是这样的:
batch_size | time (scaled)| feature
0 | 0 | 2.5 (=(1+5)/2)
0 | 1 | 4 (=(7+1)/2)
1 | 0 | 5 (=(2+8)/2)
...
如果没有优雅的方式我想也许可以使用
-
tf.strided_slice创建切片列表。其中每个切片都有要聚合的所有时间步长(上例为“2”)。 - 为每个切片应用
tf.scan和类似 avg() 的函数 - 将所有切片结果连接到新张量
我是 tensorflow 的新手,所以不确定我的伪代码是否有意义。 实施起来也有点拖沓。
非常感谢任何帮助:)
【问题讨论】:
标签: python pandas tensorflow time-series