[我遇到了一个暹罗网络的Keras代码,其中两个大小分别为(?,128)的ndarray传递给一个层以获取它们之间的差,然后传递给Lambda层以获得该平方的平方和结果数组,其目的是获得两个初始数组之间的欧式距离
embedded_distance = layers.Subtract(name='subtract_embeddings')([encoded_1, encoded_2])
embedded_distance = layers.Lambda(lambda x: K.sqrt(K.sum(K.square(x), axis=-1, keepdims=True)), name='euclidean_distance')(embedded_distance)
让我感到困惑的是,根据模型的视觉体系结构,该层的输出大小以及随后的密集层的输入大小也都是大小(?128),不是吗?只是一个数字?否则sum方法如何工作?
这里是任何人感兴趣的类的链接以及视觉架构。 (请注意:此代码对我来说是不变的,并且在我用它训练模型后可以正常工作)
您报告的问题与您正在使用的事实有关>>
distance_metric == 'weighted_l1'