首页 > 解决方案 > 如何将大小为 10 的层插入和嵌入到 100 个单元的 LSTM 层?

问题描述

这是我的实际模型的情节:

在此处输入图像描述

正如您在图片上看到的,我想将嵌入层(大小为 10)插入 LSTM 层(100 个单元),我想我不会使用其他两个输入(重塑和另一个)。

这是构造层的代码部分:

def LSTM_softmax(self, inputs, num_classes, reshaped_inputs, initial):


    if initial: # First LSTM layer
        x = layers.LSTM(self.num_units, return_state=True)(inputs)

    else:
        x = layers.LSTM(self.num_units, return_state=True)(reshaped_inputs, initial_state=inputs[1:])
    

    # x[0] LSTM hidden state output last time step
    # x[1] LSTM hidden state output last time step
    # x[2] LSTM cell state for last time step

    rx = layers.Reshape((-1, self.num_units),)(x[0])

    y = layers.Dense(num_classes, activation="softmax")(x[0])

    argmax = layers.Lambda(lambda x: K.argmax(x,axis=-1))(y)

    emb = layers.Embedding(num_classes,10)(argmax)

    return x, rx,emb # x = LSTM output, rx = reshaped, emb = embedding

如果你想玩代码,这里是 Collab链接,你只需要更改LSTM_softmax函数内的代码。

此致

标签: keras

解决方案


推荐阅读