我正在尝试训练一个LSTM模型,该模型基于4000只股票的每日基本面和价格数据,由于内存限制,在转换为模型序列后,我无法在内存中保存所有数据
这导致我使用了一个生成器,比如Keras/Tensorflow中的TimeseriesGenerator。问题是,如果我尝试在所有堆叠的数据上使用生成器,它将创建混合股票序列,请参见下面的5序列示例,这里序列3将包括“股票1”的最后4个观察值和“股票2”的第一个观察值
相反,我想要的与此类似:
稍微相似的问题:Merge or append multiple Keras TimeseriesGenerator objects into one
我探讨了这样组合生成器的选项,因此建议:How do I combine two keras generator functions,但是在~4000个生成器的情况下,这是不理想的
我希望我的问题有意义
因此,我最终要做的是手动执行所有预处理,并为每个包含预处理序列的股票保存一个.npy文件,然后使用手动创建的生成器生成如下批处理:
其中
list_of_filepaths
只是预处理的.npy数据的路径列表这将:
usedDict
中使用usedDict
以保持跟踪,从而不向模型两次提供相同的数据这意味着生成器将在每次“调用”时从随机股票中提供一个唯一的序列,使我能够使用TensorflowsDataset类型的
.from_generator()
和.batch()
方法相关问题 更多 >
编程相关推荐