我正在寻找一个最小的应用示例来实现(一次性)连体网络,最好是在 Keras 中。
我非常了解各种数据科学在线页面以及可以在那里找到的相应示例和练习。但是,到目前为止,我还没有在那里找到有启发性的来源。
如果有人可以向我指出一些 github 源,或者如果有人可以分享一些代码或其他源,我将不胜感激,它们提供了一个关于如何在 Python 或 R 中实现这种架构的合理示例。
我正在寻找一个最小的应用示例来实现(一次性)连体网络,最好是在 Keras 中。
我非常了解各种数据科学在线页面以及可以在那里找到的相应示例和练习。但是,到目前为止,我还没有在那里找到有启发性的来源。
如果有人可以向我指出一些 github 源,或者如果有人可以分享一些代码或其他源,我将不胜感激,它们提供了一个关于如何在 Python 或 R 中实现这种架构的合理示例。
来自官方 Keras 示例:
训练连体网络以使用三元组损失函数比较图像的相似性。
连体网络是一种网络架构,包含两个或多个相同的子网,用于为每个输入生成特征向量并进行比较。
连体网络可以应用于不同的用例,例如检测重复、发现异常和人脸识别。
此示例使用具有三个相同子网的连体网络。我们将为模型提供三张图像,其中两张相似(锚和正样本),第三张不相关(负样本)。我们的目标是让模型学会估计图像之间的相似性。
使用经过对比损失训练的孪生网络进行相似性学习
连体网络是在两个或多个姐妹网络之间共享权重的神经网络,每个姐妹网络都产生其各自输入的嵌入向量。
在有监督的相似性学习中,然后对网络进行训练以最大化不同类输入的嵌入之间的对比度(距离),同时最小化相似类的嵌入之间的距离,从而产生反映训练输入的类分割的嵌入空间。
这是 Keras 中的 Siamese 网络实现,旨在成为可重用的库:https ://github.com/aspamers/siamese
以下来自英特尔的博客文章也有很好的例子 https://software.intel.com/content/www/us/en/develop/articles/keras-implementation-of-siamese-like-networks.html
太好了,我也在搜索实现,我找到了这些资源。
这里 pyimagesearch 网站https://www.pyimagesearch.com/2020/11/23/building-image-pairs-for-siamese-networks-with-python/
这是 pyimagesearch 的代码实现:https ://colab.research.google.com/drive/1_AZ1MoaoNzKsw7GgHi9brxlxw84GFpnV?usp=sharing
这是获得 3k 拍手的中篇文章:
https://towardsdatascience.com/one-shot-learning-with-siamese-networks-using-keras-17f34e75bb3d