【问题标题】:How LeakyReLU layer works without setting the number of units?LeakyReLU 层如何在不设置单元数的情况下工作?
【发布时间】:2021-06-01 11:52:44
【问题描述】:

在构建顺序模型时,我注意到添加relu 层和LeakyReLU 层之间存在差异。

test = Sequential()
test.add(Dense(1024, activation="relu"))
test.add(LeakyReLU(0.2))
  1. 为什么我们不能添加带有激活=“LeakyReLU”的层? (LeakyReLU 不是 keras 可以使用的字符串)
  2. 在添加relu层时,我们设置了单元数(我的例子中是1024) 为什么我们不能为LeakyReLU 做同样的事情?

我确信reluLeakyReLU 之间的区别在于方法行为,但似乎不止于此。

【问题讨论】:

    标签: keras deep-learning activation-function relu


    【解决方案1】:
    1. 我们可以通过使用像activation='relu' 这样的别名来指定密集层本身的激活函数,这将使用默认的 keras 参数进行 relu。对于 LeakyRelu 激活函数,keras 中没有这样的别名。我们必须使用tf.keras.layers.LeakyRelutf.nn.leaky_relu

    2. 我们不能在 Relu 层中设置单元的数量,它只需要之前的输出张量并对其应用 relu 激活函数。您已经为 Dense 层而不是 relu 层指定了单元数。当我们指定Dense(1024, activation="relu") 时,我们将输入乘以权重,添加偏差并在输出上应用 relu 函数(所有这些都在一行中提到)。从步骤 1 中提到的方法开始,这个过程分 2 个阶段完成,首先是乘以权重,添加偏差,然后应用 LeakyRelu 激活函数(在 2 行中提到)。

    【讨论】:

    • 假设我想建立一个有 3 层的模型:第一层有 1024 个单位和 relu 激活。第二层有 512 个单元和leakyrelu 激活,最后一层有 1 个单元和 sigmoid 激活。我该如何构建它?
    【解决方案2】:
        import tensorflow as tf
        test = Sequential()
        test.add(Dense(1024, input_dim=784, activation="relu", name="First"))
        test.add(Dense(512,  activation=tf.keras.layers.LeakyReLU(alpha=0.01), name="middle"))
        test.add(Dense(1, activation='sigmoid', name="Last"))
        test.compile(loss='binary_crossentropy', optimizer="adam")
        print(test.summary())
    

    输出:

    Model: "sequential"
    _________________________________________________________________
    Layer (type)                 Output Shape              Param #   
    =================================================================
    First (Dense)                (None, 1024)              803840    
    _________________________________________________________________
    middle (Dense)               (None, 512)               524800    
    _________________________________________________________________
    Last (Dense)                 (None, 1)                 513       
    =================================================================
    

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 2013-01-27
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      相关资源
      最近更新 更多