【问题标题】:How does Keras produce output of different size y, given an input of size x?给定大小 x 的输入,Keras 如何产生不同大小 y 的输出?
【发布时间】:2020-11-11 15:49:58
【问题描述】:

我是神经网络的新手。我正在阅读很多指南和教程,它们将从输入大小与输出大小不同的 lstm 层开始

例如。 model.add(LSTM(100, input_shape=(20, 1))) -> 在做之前->

  • model.add(Dense(80, activation='relu')) 等

据推测,这里 lstm 的输出层大小为 100,而输入只有 20 对于一个密集层,我可以想象它是如何工作的,因为有很多图表描述了这一点,但是 lstm 如何产生与输入大小完全不同的输出层呢?

  • 同样重要的是,输入(假设为 20)可以有效地给出输出的值范围是多少?任何价值都有意义吗?

【问题讨论】:

  • 给定输入的输出大小没有限制,所以我认为你的问题是基于一个误解。 “如何”只是一个矩阵乘法。
  • 我明白了。谢谢你。不知道我的问题如何冒犯了任何人,但没关系。

标签: tensorflow keras deep-learning lstm recurrent-neural-network


【解决方案1】:

输出大小可以是任何值。例如,在输入 256 长度和 1000 长度的输出大小的词嵌入的情况下,它有点遵循以下步骤:

  1. 嵌入到 LSTM 中(这里,我忽略了批次和序列长度;在一个时间步中只嵌入了一个词)
  2. 权重矩阵(Waa、Way、Wax 等已初始化):这些矩阵的形状取决于您提供的输出大小(例如上面的 100)
  3. 所有需要的计算都按照 LSTM 语义进行
  4. 生成向量长度为​​1000的输出

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2020-04-11
    • 2019-07-27
    • 2021-04-13
    • 1970-01-01
    • 2018-10-08
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多