【问题标题】:Add more layers in seq2seq model在 seq2seq 模型中添加更多层
【发布时间】:2018-04-13 20:52:24
【问题描述】:

在 fchollet 给出的示例seq2seq 代码中,如何向编码器和解码器添加更多 LSTM 层?我在形状上遇到了一些麻烦,总的来说有点困惑。谢谢。

【问题讨论】:

    标签: python machine-learning keras layer seq2seq


    【解决方案1】:

    Keras 的函数式 api 让您可以调用层。这使您可以通过调用将另一个层链接到现有层的输出之上。例如这里:

    encoder_inputs = Input(shape=(None, num_encoder_tokens))
    encoder = LSTM(latent_dim, return_sequences=True)
    encoder_outputs, state_h, state_c = LSTM(latent_dim, return_state=True)(encoder(encoder_inputs))
    

    【讨论】:

    • 我试过了,我收到了这个错误 - ValueError: Layer lstm_2 was called with an input that is not a symbolic tensor.接收类型:。完整输入:[]。该层的所有输入都应该是张量。
    • 你设法让它工作了吗?我有同样的问题。特别是在推理过程中,我们如何重构解码器
    • @AmelMusic 是的,如果您仔细操作,它会起作用。我已经为 2 层 LSTM 定义了类似的内容:c1、h1、c2、h2 等。还要确保将第一层的“return_sequences”设置为 True。也阅读有关“Model()”的文档,这有助于我理解发生了什么。 (不幸的是,我的代码太长且令人困惑,所以我决定描述一下我所做的事情,并且它奏效了。)
    猜你喜欢
    • 1970-01-01
    • 2018-04-20
    • 2018-11-27
    • 2021-06-06
    • 2022-07-05
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多