问题标签 [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.
tensorflow - 为什么 Siamese Network 中的验证准确率没有超过 0.5,但训练准确率却变得 >0.9?
我试图在这个数据集中实现连体网络。正如我在标题中所写,无论我如何更改代码,验证准确度在 6-7 个 epoch 内将达到 0.9,但测试准确度或损失并没有提高。我应该怎么办?
生成我的网络的代码:
负极和正极对交替排列。我正在训练 8000 张图像。我尝试了 40000 张图像,但仍然得到相同的结果我更改了层数、每层中的单元数、数据集的大小,将彩色图像转换为灰度,以便我可以将更多图像放入我的 ram 中进行训练,更改了学习率等,但结果是一样的。该模型训练良好,但验证准确率始终在 0.5 左右。我应该怎么办?
python - 暹罗网络中的欧几里得距离
我遇到了一个暹罗网络的代码,其中欧几里得距离计算为:
在这段代码中,为什么我们取 sum_square 和 epsilon 的最大值?
deep-learning - 用于人脸识别的 Triplet Loss 不适用于测试数据集
我在 Siamese 网络上使用 Triplet Loss 创建了一个人脸识别模型。
- 该模型在使用小数据集进行训练时过拟合。(看起来模型工作正常)
- 损失正在完美减少。
问题是当我在测试数据上使用这个模型时它不能正常工作。也许问题出在训练数据集上。我的训练数据的总大小是 11,000,其中只有 2000 - 2500 是唯一图像。单个数据包含(锚、正、负)图像。
我可以做些什么来提高模型的性能吗?(请帮帮我)
损失类
python - 第一个 epoch 后训练损失显着减少,验证损失不稳定
我使用 EfficientNet-B0 作为连体网络中的子网,并使用对比损失作为图像相似性任务的损失函数。我的数据集非常大(27550 张图像用于训练),有 2 个类。在第一个 epoch 之后,训练损失显着减少,而验证损失不稳定。过拟合能这么早发生吗?还是我的数据有问题而令人困惑?这是我用 100 个 epoch 训练我的模型后得到的图表
pytorch - print(target.size()s_history) SyntaxError: 无效的语法
SyntaxError:无效的语法
deep-learning - 连体网络评估不比较图像,而是比较嵌入向量
我有一个关于在连体网络上测试图像对的问题。我想训练一个连体网络,以便我可以将嵌入向量存储在内存中,这样我就不必与数据集中的所有图像进行比较,如果数据集很大,这需要时间。是否有可能做到这一点?如果是,如何。
如果有人知道这种方法的明确解释/实现,请分享描述与我的要求类似的工作的链接或已发表的论文。
tensorflow - 如何在 Colab 中免费训练大型数据集
我必须在 google colab 免费上为我的面部验证项目训练 70,000 张图像。首先,它卡在第一个 epoch,然后即使它开始训练,一段时间后它也会抛出 RAM 错误。我使用的代码是:
如果我必须对我的数据集进行小批量处理以将其放入 colab 的 GPU 内存中,那么我该怎么做呢?另外,我想训练整个数据集,因为它包含 5 个不同人的图像作为锚点和正例。
python - RuntimeError:张量 a (2) 的大小必须与非单维 2 的张量 b (100) 的大小相匹配
在 _call_impl(self, *input, **kwargs) 1100 如果不是 (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks 1101 or _global_forward_hooks or _global_forward_pre_hooks): -> 1102 return forward_call(*input, **kwargs) 1103 # 使用jit时不要调用函数 1104 full_backward_hooks, non_full_backward_hooks = [], []
python - 如何使用 Keras 构建字符级连体网络
我正在尝试使用 Keras 在字符级别上构建连体神经网络,以了解两个名称是否相似。
所以我的两个输入 X1和X2是一个 3-D 矩阵:
X[number_of_cases, max_length_of_name, total_number_of_chars_in_DB]
在实际情况下:
- number_of_cases = 5000
- max_length_of_name = 50
- total_number_of_chars_in_DB = 38
我有一个大小为y[number_of_cases]的输出二进制矩阵。
例如:
print(X1[:3, :2])
将给出以下结果:
我使用以下代码来构建我的模型:
我收到以下错误:
使用不是符号张量的输入调用层 L1_distance。
我认为错误是我需要告诉 L1_distance 层使用前面两个 LSTM 层的输出,但我不知道该怎么做。
第二个问题是,即使在字符级网络的场景中,我是否必须在 LSTM 之前添加一个嵌入层?
谢谢你。
deep-learning - 如果我希望它输出数据关联的相似性分数,我的 Siamese LSTM 网络的架构应该如何?
我需要建立一个神经网络,允许计算被跟踪对象的两个轨迹(短轨迹)之间的相似性。如果两个 tracklet 对应于同一个对象,则此相似性必须很高。
我认为 LSTM 网络是解决这个问题的最佳网络之一。
在 Xingyu Wan等人的论文“An Online and Flexible Multi-Object Tracking Framework using Long Short-Term Memory”中。,提出了一个 Siamese LSTM 网络来解决这个问题。
对于每个 LSTM 单元,输入数据将是跟踪对象的图像和位置。
但是我不明白本文中使用了 LSTM 的哪些输出。似乎他们为每个 LSTM 网络使用了最后一个单元的两种状态,但这意味着我们使用过去保存的信息来比较两个轨迹(因为它来自最后一个 LSTM 单元的记忆)
在我看来这是一个问题,因为这意味着两个 tracklet 的结尾应该是相似的,但我实际上需要相似的(在同一对象的两个 tracklet 之间)是第一个 tracklet 的结尾和下一个 tracklet 的开头.
所以我想知道:
我们应该如何比较 LSTM 的输出?(我的意思是,我们应该使用哪些输出?以及如何以正确的方式融合它们以输出关联概率
先感谢您 :)
对不起我的英语我不是本地人