问题标签 [siamese-network]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
120 浏览

python - Siamese Network-Train 自己的数据集并判断过拟合

我使用Siamese Network训练自己的数据集。我使用Tensorboard将训练结果可视化。我是初学者,不太擅长判断是否过拟合。请帮忙看看,谢谢!图 1 和图 2 是火车。图 3 和图 4 是验证。 图1 这是训练集的准确率

图 2 火车损失 图 3 Validation set 的准确率 图 4 验证损失

0 投票
0 回答
54 浏览

python - 将图像与一组图像进行比较,以找到相似度最高的图像

我使用siamese网络训练权重并进行预测。我查看源代码将图像与图像进行比较以预测相似度。
我想用我训练的权重来比较一张图片和一组图片,得到最高的相似度,并展示出来。我训练了权重,这个预测的实现是做不到的。
源代码在这里,你能帮我看看我应该如何设计吗? 连体网

预测.py

例如,我想要对训练过的权重做的是预测这样的事情。 在此处输入图像描述使用这张图片和下面的一组图片进行预测。 我们希望得到的是与第四张图片和视觉输出的最高相似度。在此处输入图像描述

0 投票
0 回答
45 浏览

tensorflow - 连体多层感知器

我正在研究连体神经网络,我发现的只是 CNN 和 LSTM 的示例,如下所示:

我很好奇是否可以用一些密集层替换 LSTM 层以使其成为连体多层感知器?

0 投票
0 回答
167 浏览

machine-learning - 连体网络(预测相似性,将训练数据中的图像与测试数据中的图像进行比较

我对连体网络有疑问。到目前为止,我发现在测试时,它会获取随机测试图像并将其与测试数据中的其他图像进行比较。但是我想做的是在训练完模型之后,然后我只想将模型训练的图像与一张测试图像进​​行比较,看看我的相似度得分是多少。你可以在这里查看。

https://colab.research.google.com/github/PacktPublishing/Hands-On-Computer-Vision-with-PyTorch/blob/master/Chapter14/Siamese_networks.ipynb#scrollTo=v7PNY-3SA-9o

0 投票
1 回答
61 浏览

python - 如何使用连体网络和功能 API 在 keras 中获得中间层的结果?

我对连体网络有以下网络定义:

但是,这部分作为功能 API连接到我的网络的输入和输出。以下是我如何链接这些部分:

但是,在编译模型时,这里是模型的摘要:

在此处输入图像描述

因此,我在上面完成的网络定义似乎只是网络的一层。

那么,我想要什么?

我想加载模型并提取特定层的输出。特别是,我想要功能对象最后一层的输出(上面的网络定义中的输出 = Dense(48)(pooledOutput))。这将为我在模型中测试的每对图像提供 48 个特征向量。

我试图检查一些以前的帖子并做了以下事情:

问题是什么??

上面代码的问题在于它只能访问 0、1、3 和 4 层。0 和 1 给出输入形状,第 3 层给出分数,第 4 层是空的。**我想访问中间层,尤其是特征提取器网络的最后一层。** 我怎样才能做到这一点?

0 投票
1 回答
92 浏览

python - 如何保存连体模型的基础网络?

我正在尝试建立一个具有相当复杂的基础网络的连体模型。构建基础网络后,我使用以下代码构建我的连体网络:

基础网络的输出形式model

问题是在训练连体网络之后,我想使用基础网络的输出作为嵌入,这样我就可以运行无监​​督学习算法。但是,在训练 siamese 网络时,我想一次训练 10 个 epoch,然后保存它并在需要时继续训练。在这种情况下,当我保存并重新加载连体模型时,我不确定如何保存/访问基础网络。例如,我得到了需要 2 个输入的连体模型的下图(我的基本模型使用 2 个输入,所以技术上我有 4 个输入,如图所示),但我想使用只需要 1 个输入的基本模型训练(技术上是 2,因为我的基本模型使用 2)。

谁能给我关于如何使用保存的连体模型加载更新的基本模型的建议,或者是否有更好的方法首先保存它?

非常感谢。

在此处输入图像描述

0 投票
1 回答
294 浏览

neural-network - RuntimeError:给定组 = 1,大小为 [32、1、5、5] 的权重,预期输入 [256、3、256、256] 有 1 个通道,但有 3 个通道

我正在尝试运行以下代码,但出现错误:

在此处输入图像描述

0 投票
0 回答
36 浏览

pytorch - Siamese Network 不能在 pytroch 中学习

我正在尝试实现连体网络进行人脸识别,我使用对比损失,但不幸的是,当两个图像不属于同一个人时,网络输出的值不会超过边距,所以当我测试它时,它总是输出两张图片属于同一个人。这是代码:

我如何测试:我在输入两个图像后迭代图像并查看网络的输出,如果这两个输出(嵌入向量)之间的距离大于边距,那么图片不属于同一个人,如果距离是小于边距则图片属于同一个人。由于保证金的值为 100。(可能这是问题)

0 投票
0 回答
42 浏览

neural-network - 分类器对象没有属性序列

我在 datatset.py 模块中收到此错误,该模块用于为连体网络创建正负对。知道为什么它给我这个错误吗?我在我自己的自定义数据集的训练数据集上将此 Siamese MNIST 称为我的主要模块“itr1.py”。

错误日志

0 投票
0 回答
82 浏览

python - 每次调用函数时都会弹出 KeyError

嗨,我正在尝试使用 Omniglot 数据集实现连体神经网络以进行一次性图像识别。实现的初始步骤需要生成具有相同/不同类的对样本,为此我使用了Ben Myara 的 github中的make_pair函数,几乎没有修改。但是,每次调用函数时都会弹出keyError,所以我想知道导致此错误的原因,这是我的实现:

当我尝试使用以下命令调用该函数时发生错误:

这是我得到的回溯错误:

此外,我还尝试在没有 for 循环的情况下实现部分功能,并且一切似乎都在那里正常工作: