尽我所能,我还没有找到这个问题的答案。
我只想使用Python 3.6和TensorFlow训练LSTM网络,使用多个.csv文件/数据集,例如使用多家公司的历史股票数据。
这样做的原因是我想使模型适合各种价格范围,而不是在每个数据集中训练单个模型。我将如何去做?
我不能仅将一个数据集追加到另一个创建1个大数据集的原因,因为在火车/测试拆分期间,价格可能会从2美元跃升至200美元,具体取决于库存数据和数据集的拼接位置。
做这样的事情的最佳实践是什么?
只需为每个.csv文件创建一个循环,然后调用.fit函数以在一定数量的时间段内依次对每个文件进行训练(不断更新其权重),并在最佳情况下使用尽早停止发现损失? (我现在知道该怎么做。)
是否有一种创建生成器的方法,该生成器可以以某种方式从每个.csv生成不同的x_train和y_train元组,将模型与每个元组拟合,然后在从每个元组中采样一个元组后,有一个训练检查点.csv文件?我的想法是,在完成一个时代之前,该模型应该有机会从每个数据集中抽取一个样本。
示例:假设我想使用20个周期的回溯/窗口大小来预测提前t + 1,并且我有5个.csv文件可供训练。生成器将(理想地)将所有数据集加载到内存中,然后从第一个.csv文件中抽取20行的随机样本,将其拟合到模型,然后从第二个.csv文件中抽取另外20行,进行拟合,依此类推,然后对所有5个样本进行采样后,请检查点评估损失,然后继续进行下一个步骤,并再次进行。
这可能是过分的,但想做到彻底。如果选项1.可以完成同样的事情,那对我也很好,我只是还没有找到答案。
谢谢!
答案 0 :(得分:1)
将所有CSV合并到一个文件中,并提供足够的步骤,使其涵盖所有内容。如果进行预处理,则应在一个训练文件中创建序列,每个序列有一行,其中每个序列对于给定的CSV具有20个左右的上一个句点。这样,当将它们随机输入模型中时,每个序列对应于正确的库存