gpt4 book ai didi

keras - 了解 Dense 层的参数单位和 input_dim 之间的区别

转载 作者:行者123 更新时间:2023-12-04 12:17:26 24 4
gpt4 key购买 nike

假设我有一个大小为 (1000, 64) 的数据集,其中 64 是列数(即特征)。在 Keras 中,假设我想构建一个 NN 模型作为以下架构:

  • 输入层:显然应该是一层具有与我的数据集中的特征数量相等的神经元数量。因此,这里的神经元数量 = 64。
  • 隐藏层:我想让这个隐藏层有 100 个神经元。
  • 输出层:这是一个神经元,因为我正在处理一个二元分类问题。

  • 现在,要在 Keras 中构建上述架构,我通常会执行以下操作:
    model = Sequential()
    model.add(Dense(units=64, input_dim=64, activation='tanh')) # Input layer
    model.add(Dense(units=100, activation='tanh')) # Hidden layer
    model.add(Dense(units=1, activation='sigmoid')) # Output layer

    问题是我无法区分参数 unitsinput_dimDense()层(用于充当第一层(Input Layer)的角色)。我明白 input_dim旨在指定数据集中的特征数量(在我的情况下为 64),但我不明白 units 的作用这里 对于输入层 .应 units是 64?换句话说,就是参数 units应该是一样的 input_dim对于输入层?

    非常感谢。

    最佳答案

    让我们先看一下图示

    enter image description here

    在 keras 序列模型符号方面,您将需要两个 Dense 层(图中标记为虚线框)

  • 密集层 1:它应该有 100 个神经元,每个神经元将 64 个特征作为输入,因此这个密集层的定义将是Dense(units=100, input_dim=64)
  • 密集层 2:这里需要一个神经元,它将前一个密集层的输出作为输入。 input_dim密集层不需要,因为它连接到序列模型中的前一个密集层,无论前一个密集层输出什么,它都会作为输入(对于每个神经元)Dense(units=1)

  • 所以模型将是:
    model = Sequential()
    model.add(Dense(units=100, input_dim=64, activation='tanh')) # First Hidden layer
    model.add(Dense(units=1, activation='sigmoid')) # Output layer

    你可以想到 Dense(units=m, input_dim=n)作为具有 m 的层神经元,每个神经元有 n输入。该层将输出 m输出(每个神经元一个)。

    关于keras - 了解 Dense 层的参数单位和 input_dim 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56454467/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com