代码之家  ›  专栏  ›  技术社区  ›  Alejandro

多对一LSTM,多类分类

  •  2
  • Alejandro  · 技术社区  · 8 年前

    尺寸为(170000、50500)->(示例、时间步长、特征数量)
    输出:

    到目前为止,我已经尝试了这段代码,但出现了一个错误,指出密集层应该有一个3D输入。

    model = Sequential()
    model.add(LSTM(64, input_shape=(50, 500), return_sequences=True,dropout=0.2, recurrent_dropout=0.2))
    model.add(Dense(units = 10,activation='sigmoid'))
    model.compile(loss='categorical_crossentropy', optimizer='adam')
    model.fit(input, output, epochs=1, batch_size=64)
    

    唯一可行的是改变输出,使其具有以下形式:(170000,50,10),除了第50个时间步长外,基本上都是零。

    这是正确的方法吗?如果是这样,还有更有效的方法吗?我担心的是,扩展输出的形状可能会降低代码的效率。

    1 回复  |  直到 8 年前
        1
  •  1
  •   DJK    8 年前

    你所要做的就是改变 return_sequences=True return_sequences=False . 此外,如果每个项目只能适合一个类,则需要将输出层中的激活函数更改为 activation='softmax'