问题标签 [triplet]

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 回答
50 浏览

arrays - 数组三元组只显示一次

我有这个函数: int Triplet(int *array, int size, int K) { int i, j, k;

但是,当三元组太多时,它只显示我的数组中的 1 个三元组,以及如何计算所有显示的三元组?更好的是,这个三元组在函数中还是在 int main (void) 中?谢谢你的建议

0 投票
2 回答
2675 浏览

arrays - 寻找独特的三胞胎

在我的函数中,我必须从给定数组中找到给定数字 K 的所有唯一三元组。它找到所有三元组,但其中许多存在两次或更多,就像or和 etc1 1 5一样。1 5 15 1 1

有人可以帮我吗?

0 投票
1 回答
464 浏览

c - 毕达哥拉斯三元组上的 C 程序 - 输出不正确

我想从 1 到 30、a 和 b 的每个数字组合中找出它们的毕达哥拉斯三元组。所有数字的限制是 30。输出从 14 开始。我不明白为什么。我真的很抱歉严重错误或格式错误。我刚刚开始 C。谢谢 :)

图片

0 投票
2 回答
5123 浏览

neural-network - 如何确定卷积神经网络中三元组损失的准确性

Triplet网络(受“连体网络”的启发)由相同前馈网络的 3 个实例(具有共享参数)组成。当输入 3 个样本时,网络输出 2 个中间值——两个输入的嵌入表示与第三个输入的表示之间的 L2(欧几里得)距离。

我使用成对的三个图像来馈送网络(x = 锚图像,标准图像,x+ = 正图像,包含与 x 相同对象的图像 - 实际上,x+ 与 x 属于同一类,并且x- = 负image与 x 具有不同类别的图像

在此处输入图像描述

我正在使用这里描述的三元组损失成本函数。

如何确定网络的准确性?

0 投票
1 回答
1985 浏览

tensorflow - 如何在张量流中实现过滤器?

我有一个卷积神经网络,其中三个图像作为输入:

在一个train函数中,我为占位符提供实际图像:

我在这三个输入上使用了三元组损失函数(实际上是上面的成本变量):

如何过滤损失,因此只有 loss_value > 0 的图像将用于训练网络?

我怎样才能实现类似的东西:

到目前为止我已经尝试过:

我一张一张地拍摄图像(input1[0]、input2[0]、input3[0]),计算损失,如果损失为正,我将计算(并应用)梯度。但问题是我在我的模型中使用了dropout,我必须在我的输入上应用两次模型:

  1. 首先计算loss并验证是否大于0

  2. 其次运行优化器:这是出现问题的时候。前面提到过,我使用了dropout,所以模型在我的输入上的结果是不一样的,所以即使第1步确定的loss大于0,新的loss有时候也会为0。

我也尝试使用tf.py_func但卡住了。

0 投票
3 回答
215 浏览

java - 如何在 Java 中以更优化的方式生成数字组合?

我有一个问题陈述,需要将 3 个不同的数字传递给一个方法并检查哪些 3 个数字满足某个约束。

这是我的代码,但我想知道不是创建嵌套循环,而是有更优化的方法来检查哪一组三元组满足某个约束。?

0 投票
0 回答
2370 浏览

keras - Keras:批次内正负样本的三元组损失

正如https://arxiv.org/pdf/1703.07737.pdf中所建议的那样,我尝试重构我的 Keras 代码以对三元组使用“Batch Hard”采样。

" 核心思想是通过随机抽样 P 个类别(人的身份)形成批次,然后随机抽样每个类别(人)的 K 张图像,从而产生一批 PK 图像。现在,对于该批次中的每个样本 a,在形成三元组计算损失时,我们可以选择batch中最难的正样本和最难的负样本,我们称之为Batch Hard”

所以目前我有一个 Python 生成器(用于 Keras 中的 model.fit_generator),它在 CPU 上生成批处理。然后可以在 GPU 上完成模型的实际前向和后向传递。

但是,如何使其适合“Batch Hard”方法?生成器对 64 个图像进行采样,应形成 64 个三元组。首先需要前向传递来获得当前模型的 64 个嵌入。

但随后必须从 64 个嵌入中选择最难的正数和最难的负数来形成三元组。然后可以计算损失

而这个triplet_model可以通过定义一个triplet loss函数来训练。但是,Keras 是否可以使用 fit_generator 和“Batch Hard”方法?或者如何从批次中的其他样本中获取嵌入?

编辑:使用 keras.layers.Lambda 我可以定义一个自己的层,创建带有输入(batch_size,height,width,3)和输出(batch_size,3,height,width,3)的三元组,但我还需要在某处访问 id . 这可能在层内吗?

0 投票
1 回答
351 浏览

compilation - keras 如何通过 model.compile 将 y_pred 传递给损失对象/函数

如果我有一个定义三重损失的函数(期望 y_true 和 y_pred 作为输入参数),并且我通过以下方式“引用或调用它”:

y_pred 如何传递给triplet_loss 函数?

例如,triplet_loss 函数可能是:

谢谢乔恩

0 投票
0 回答
401 浏览

python - Triplet Network,损失函数和等距离

我目前正在实现一个三元网络来识别两个图像是否描述了相同的 3d 模型,但是我对结果有一些问题,锚正之间的距离总是等于锚负之间的距离。

这是我的损失函数的代码:

其中 o1、o2 和 o3 是具有共享权重的卷积网络的输出,并且是批量归一化的:

第一个结果如下:

(dneg 和 dpos 是正负对的距离)

这么多的问题 :

  • 如何调整边距?那么这两个距离之间的差异是如此之小,以至于我必须放一个很小的余量?

  • 因为两个距离相等,所以损失等于margin。如何避免这个问题?

  • 如何衡量三元网络的准确性?例如,如果一批大小为 100,我们可以计算与锚点的距离大于锚点与正例 + 边距之间的距离的负例的数量吗?

非常感谢你的回答!

0 投票
1 回答
59 浏览

python - 为什么我的列表理解没有显示与 for 循环相同的结果?

下面是我的三元组代码,总和为给定值(使用 for 循环)

结果如下(如预期)

但是,如果我更改代码以使用列表理解(如下所示),结果不正确。为什么??

上述代码的结果如下