在运行LSTM自动编码内存错误

问题描述 投票:1回答:1

我设置了一个自动编码器LSTM与多元时间序列。我的每一个序列都有不同的时间步长(一个序列中近3000万步)和6层的特性。我知道,得到一种序列为输入到自动编码器LSTM,我要重塑我的序列(1,30million,6).I重塑所有我的9个序列以类似的方式。我想自动编码器重建我的序列。但是我的程序崩溃是由于大量的每个序列中的时间步长。我该如何解决这个内存错误。即使我在批量给数据,我的程序运行内存。我是新来的机器学习和序列学习,所以请帮我same.My网络连接如下:`

DEF repeat_vector(参数):

 [layer_to_repeat, sequence_layer] = args

 return RepeatVector(K.shape(sequence_layer)[1])(layer_to_repeat)

encoder_input =输入(形状=(无,self._input_features))

encoder_output = LSTM(self._latent_space)(encoder_input)

decoder_input =拉姆达(repeat_vector,output_shape =(无,self._latent_space))([encoder_output,encoder_input])

decoder_output = LSTM(self._input_cells,return_sequences =真)(decoder_input)

self._autoencoder =模型(encoder_input,decoder_output)`

我已经尝试通过HDF文件采取输入。

python-3.x keras sequence lstm autoencoder
1个回答
2
投票

我不知道你使用的是什么系统配置。奥姆斯可以从软件和硬件端来解决。如果您使用的是有发言权4GB内存的系统和一些i5处理器(假设它是英特尔),它可能无法正常工作。如果你是在GPU上的工作(这是不太可能。)它不应该是硬件问题。

如果你的系统有一个图形卡,那么,你可以优化的代码位。

  1. 尝试的1批次大小。
  2. 如果你有一个预处理队列等尝试调整队列的大小。
  3. 我建议你去之前在为完整的东西,一旦尝试一下本作较小的系列,并检查是否正常工作。
  4. 如果你花时间步长要大,它将会失去精度,如果它太小了,还有那么它的重来计算。检查他们中的每一个,如果时间步长可以增加,而对精度太多妥协。
  5. 您可以使用PCA对于了解的重要特征,降低维数。您也可以使用随机森林作为一个预处理步骤,以了解该功能的重要性,并减少与少inportance的功能。
© www.soinside.com 2019 - 2024. All rights reserved.