相关疑难解决方法(0)

LSTM自动编码器

我正在尝试构建一个LSTM自动编码器,目的是从序列中获取一个固定大小的矢量,这表示序列尽可能好.该自动编码器由两部分组成:

  • LSTM编码器:获取序列并返回输出向量(return_sequences = False)
  • LSTM解码器:获取输出向量并返回序列(return_sequences = True)

因此,最后,编码器是多对一 LSTM,解码器是一对多 LSTM.

在此输入图像描述 图片来源:Andrej Karpathy

在较高的层次上,编码看起来像这样(类似于这里描述的):

encoder = Model(...)
decoder = Model(...)

autoencoder = Model(encoder.inputs, decoder(encoder(encoder.inputs)))

autoencoder.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

autoencoder.fit(data, data,
          batch_size=100,
          epochs=1500)
Run Code Online (Sandbox Code Playgroud)

data数组的形状(训练样本数,序列长度,输入维数)(1200, 10, 5)如下所示:

array([[[1, 0, 0, 0, 0],
        [0, 1, 0, 0, 0],
        [0, 0, 1, 0, 0],
        ..., 
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]],
        ... ] …
Run Code Online (Sandbox Code Playgroud)

python machine-learning deep-learning keras tensorflow

31
推荐指数
2
解决办法
2万
查看次数