keras - 在训练图像相似性神经网络时如何使用 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)
我正在寻找的答案:
在训练网络期间如何使用此 L1 距离。
除了 L1 距离之外,还有哪些其他选项可用于测量两种编码之间的相似性?
我希望如果我能得到这些答案,我可以根据我的要求调整网络。
解决方案
推荐阅读
- javascript - 为什么我的 jQuery 没有检测到对标签的点击?
- ruby-on-rails - CanCanCan“索引”规则有和没有块之间的区别
- c# - 本机 Xamarin.Android 应用程序在发布模式下不断崩溃
- javascript - 条件渲染输入重叠文本
- jquery - 通过 jQuery 下载时 Zip 文件无效
- boolean - 如何在 COBOL 中返回 true
- google-chrome - emoji/canvas/text 如何在 Chrome/Firefox 等浏览器上呈现?
- javascript - 如何隔离 React app.js 包中的组件
- flutter - 请帮助解决颤振应用程序得到这个问题
- node.js - TypeORM第二条JOIN语句不提供结果