我可以将 Conv2D 和 LeakyReLU 合并到一个层中吗?

sam*_*ser 5 python neural-network keras tensorflow

keras Conv2D 层本身不带有激活函数。我目前正在重建YOLOv1模型进行练习。在 YOLOv1 模型中,有几个 Conv2D 层,然后使用leaky relu 函数进行激活。有没有办法结合起来

from keras.layers import Conv2D, LeakyReLU

...

def model(input):
    ...

    X = Conv2D(filters, kernel_size)(X)
    X = LeakyReLU(X)

    ...
Run Code Online (Sandbox Code Playgroud)

到一行代码中,例如X = conv_with_leaky_relu(X)?我认为它应该类似于

def conv_with_leaky_relu(*args, **kwargs):
    X = Conv2D(*args, **kwargs)(X)
    X = LeakyReLU(X)
    return X
Run Code Online (Sandbox Code Playgroud)

但这当然行不通,因为 X 是什么是未定义的。有任何想法吗?

Yan*_*unk 10

您可以将其作为激活传递:

X = Conv2D(filters, kernel_size, activation=LeakyReLU())(X)
Run Code Online (Sandbox Code Playgroud)

  • @sampleuser - 除了字符串之外,您还可以将可调用对象传递给“activation” (2认同)