【问题标题】:Keras L2 normalisation of concatenated vectors级联向量的 Keras L2 归一化
【发布时间】:2020-03-27 12:27:01
【问题描述】:
我正在尝试在 Keras 中构建一个网络,该网络应该分别输出两个维度为 3 和 4 的单位长度向量,并且目前正在使用维度为 7 的最终密集层来实现这一点。我现在的问题是,我现在知道如何在这之后添加一个图层,分别标准化两个向量的长度。据我了解,通常可以使用类似
的方式对矢量输出进行归一化
l2_norm = Lambda(lambda x: K.l2_normalize(x,axis=1))(prevDense)
但不清楚如何改变这两个分别对待两个“半”。有什么想法吗?
【问题讨论】:
标签:
tensorflow
machine-learning
keras
keras-layer
【解决方案1】:
您似乎想使用Lambda 层先对张量进行切片,然后再进行归一化。在这种情况下,您可以执行以下操作:
# slicing the tensors
slice1 = Lambda(lambda x: x[:,:4])(prevDense)
slice2 = Lambda(lambda x: x[:,:3])(prevDense)
l2_norm_slice1 = Lambda(lambda x: K.l2_normalize(slice1,axis=1))(slice1)
l2_norm_slice2 = Lambda(lambda x: K.l2_normalize(slice2,axis=1))(slice2)
希望这会有所帮助!