如何在Keras中实现L2规范池?

如何在Keras中实现L2规范池?,keras,pooling,Keras,Pooling,我想在我的CNN中添加一个全局临时池层,该层具有三种不同的池功能:均值、最大值和L2范数。Keras具有平均池和最大池函数,但我还没有为L2找到一个。我自己怎么能实现这个呢?我也在寻找这个,keras中没有现成的池。 但是您可以使用Lambda层来实现它 from keras.layers import Lambda import keras.backend as K def l2_norm(x): x = x ** 2 x = K.sum(x, axis=1) x =

我想在我的CNN中添加一个全局临时池层,该层具有三种不同的池功能:均值、最大值和L2范数。Keras具有平均池和最大池函数,但我还没有为L2找到一个。我自己怎么能实现这个呢?

我也在寻找这个,keras中没有现成的池。 但是您可以使用Lambda层来实现它

from keras.layers import Lambda
import keras.backend as K

def l2_norm(x):
    x = x ** 2
    x = K.sum(x, axis=1)
    x = K.sqrt(x)
    return x
global_l2 = Lambda(lambda x: l2_norm(x))(previous_layer)

我一直在寻找这个,关于如何计算池的信息很少。如果有人对实现它感兴趣,请参见以下比较:

最大池:从正在评估的NxM单元中获取最大值,并将其作为此单元位置的下采样矩阵的值

Avg Pooling:与上述类似,获取单元格内所有值的平均值,而不是最大值

L2范数池:与上面类似,计算单元格内数字的L2范数,而不是平均值,然后在目标下采样矩阵中使用此数字。假设我们得到一个单元(内核大小)是2x2,它是四个数字。现在假设这四个数字是1,2,3,4。L2范数为sqrt(总和(12+22+32+42)。这是进入目标细胞的数字