如何在Keras实施L2-Norm池



我想向我的CNN添加一个全局的时间池层层,该层具有三种不同的池函数:均值,最大和L2-norm。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池:与上述相似,而不是最大值,获取单元格中所有值的平均值

l2-norm池:与上述相似,而不是平均值,计算单元格中数字的L2-符号,然后在目标下采样矩阵中使用此数字。假设我们得到一个单元格(内核大小(,即2x2,即四个数字。现在假设这四个数字是1,2,3,4。L2-NORM将是SQRT(SUM(1 2 2 2 3 2 4 4 2 (。这是靶向单元格的数字。

最新更新