Keras padding 将我的所有值替换为 0

Nou*_*our 1 python padding lstm

为了适应我想在单变量 LSTM 中使用并且具有“多步时间”的数据序列,最简单的方法是进行一些填充。我的初始数据集如下所示,它是一个 numpyarray:

X
[0.295046, 0.325147, 0.361293]
[0.249307,0.444077]
[0.570017,0.525082,0.475404,0.390616]
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的是:

from keras.preprocessing.sequence import pad_sequences
padded_x = pad_sequences(X)
print(padded_x)
Run Code Online (Sandbox Code Playgroud)

而不是添加零来“完成”数据集:

X
[0.0, 0.295046, 0.325147, 0.361293]
[0.0, 0.0, 0.249307,0.444077]
[0.570017,0.525082,0.475404,0.390616]
Run Code Online (Sandbox Code Playgroud)

它只是将所有值替换为 0。我不知道我错过了什么......

提前致谢 :)

pan*_*rey 5

默认情况下,pad_sequencesdtype参数设置为'int32',从而导致浮点值舍入为 0。因此,您需要使用pad_sequences(x, dtype='float32')(或'float64',如您认为合适)。

  • 也许出于通用性而使用“dtype=x.dtype”? (3认同)
  • @Nour 不客气!如果我是你,我也会采纳 @OllinBoerBohan 使用 `x.dtype` 的聪明建议:-) (2认同)