【问题标题】:Dense layer weights shape密集层权重形状
【发布时间】:2018-05-07 10:44:03
【问题描述】:

在具有以下部分架构的模型中:

我们假设 Dense1 和 Dense2 层(完全连接)。

我需要为 Dense2 获取我已经训练好的模型的权重,但是我为这一层得到的形状是 (128,2048),这让我感到困惑,因为这一层的理论解释是它应该为我的数组(这里:2048)。我将 Dense2 的权重打印为:

    weights  =  model.layers[layer_idx].get_weights()

我不应该看到建筑的形状吗? (无,2048)

【问题讨论】:

  • 该层将产生与其中的单元一样多的输出。如果你的密集层有units=2048,它将输出 2048 个数字。
  • @Aechlys 这让我很困惑。我创建了一个包含 2048 个单位的过滤器。为什么会得到前一个FC层和后一个FC层的单元组合?
  • 也许我误解了这个问题。我们重来。您期望权重仅为 2048 个值吗?相反,你得到了 128x2048 的值。我现在是否正确理解了这个问题?

标签: python neural-network deep-learning keras


【解决方案1】:

第二个密集层有 2048 个神经元,每个神经元都与前一层输出相连。因此对于单个神经元,将有 128 个前层神经元参与。

y = w1*x1 + w2*x2 + .......... + w128*x128

所以总共 (128*2048) = 262144 个参数和 2048 个偏置向量总共 264192 (262144 + 2048) 个参数。

谢谢

【讨论】:

    【解决方案2】:

    不是每个神经元都有权重,而是每个神经元连接。如果您将 128 个神经元与 2048 个完全连接,您将获得 128 x 2048 的权重。

    这就是形状为 (128, 2048) 的原因。

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多