在基于滑动窗口的时间卷积网络中重用数据



我正在用1D卷积滤波器处理8通道EMG数据,并对其关节角度进行回归。我的训练数据包括每个目标关节角度的200个样本长的EMG数据窗口(因此为8x200值(。一旦在一个窗口上完成了学习,下一个窗口就只是未来的一个样本。这意味着8x199值与上一个窗口相同。由于我在家工作,手头只有一台16GB RAM的笔记本电脑,我的记忆力很差,因为我想包括更多的训练数据和不同的频道。

有没有一种方法可以在不将单独的窗口显式存储在内存中的情况下重用训练数据?即只有一份录音副本,并在培训期间为培训中的网络提供所需的窗口?基于Keras的解决方案将是首选,因为到目前为止,我已经使用这个库完成了所有工作。

为了在有人需要的情况下回答我自己的问题,Keras/tf.Keras中的解决方案是使用数据生成器。由于原始数据集可以毫无问题地加载到内存中,所以我提前读取了所有文件,然后用数据生成器对象从中采样窗口。

编辑:这是Afshine Amidi和Shervine Amidi关于数据生成器的伟大指南的链接。如果出现这种情况,请查看Keras.utils.Sequence类(而不是Sequential类(上的Keras文档,数据生成器从该类继承。

最新更新