设置
数据是一维时间序列数据。滑动窗口(帧)在数据上运行并提取 100 维特征向量 f_{i}( t_{j} ),其中 i 是文件索引,j 是帧的时间索引。来自 n 个连续帧的能量被堆叠以形成 2D“图像”,这是分类器的输入。
基本方法
只需将堆叠的向量保存在 tfrecords 文件中即可。缺点是堆叠向量有大量重复数据,占用大量空间。如果我们有 10 gigs 的特征向量,那么堆叠 10 帧历史将需要 50 gigs(+开销)的空间。然而,我们可以让 tf.data 做洗牌、预取、批量创建等等。很方便!
期望的方法
我们仅将特征向量保存为 tfrecords 文件并动态创建堆叠特征向量(图像)的实现。
问题
以前有没有遇到过这种情况并处理过?大多数人会不会关心他们数据的高度重复或占用的空间量?
获得所需的实施有多困难。即使是天真地改组数据也会打乱时间顺序。我也仅以一种调用 iterator.get_next() 的方式使用 tf.data 来从一个示例中获取特征和标签,然后将其提供给图形。我想我还需要弄清楚如何不仅获得当前示例的壮举和标签,而且及时获得它的前身!所以我正在寻找一些关于如何实现这一点的提示。
这是由 2 帧特征向量形成的图像的过程图像。请注意,在这种情况下,每个特征向量将在 tfrecords 数据文件中出现两次: