首页 > 解决方案 > 在训练图像相似性神经网络时如何使用 L1 距离?

问题描述

我正在实现一个神经网络,它发现两个图像之间的相似性,无论它们是否相似。

参考:https ://www.kaggle.com/arpandhatt/siamese-neural-networks/data

每个示例都包含([image_1, image_2], label). 0如果标签相似和不同,则标签具有值1

网络卷积网络由一系列卷积和池化层组成,并输出一个特征向量。

在实现中,他们计算编码之间的 L1 距离,并为最终决策添加了一个密集层。

encoded_l = convnet(left_input)
encoded_r = convnet(right_input)

# Getting the L1 Distance between the 2 encodings
L1_layer = Lambda(lambda tensor:K.abs(tensor[0] - tensor[1]))

# Add the distance function to the network
L1_distance = L1_layer([encoded_l, encoded_r])

prediction = Dense(1,activation='sigmoid')(L1_distance)
siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)

我正在寻找的答案:

我希望如果我能得到这些答案,我可以根据我的要求调整网络。

标签: kerasconv-neural-networksimilaritytransfer-learningvgg-net

解决方案


推荐阅读