Lua torch中的成对相似准则

Lua torch中的成对相似准则,lua,neural-network,torch,loss,Lua,Neural Network,Torch,Loss,我想在torch7中实现一个新标准 基本上,我有一对样本,我有一个标准化的相似度实值(让我们将其表示为“d”) 在现有标准中,我能得到的最接近的标准是提供以下损失的: ⎧ 1 - cos(x1, x2), if y == 1 loss(x, y) = ⎨ ⎩ max(0, cos(x1, x2) - margin), if y == -1 显然,这是为成对设计的,但这是为分类问题设计的 在我的问题中,我想实现一个

我想在torch7中实现一个新标准

基本上,我有一对样本,我有一个标准化的相似度实值(让我们将其表示为“d”)

在现有标准中,我能得到的最接近的标准是提供以下损失的:

             ⎧ 1 - cos(x1, x2),              if y ==  1
loss(x, y) = ⎨
             ⎩ max(0, cos(x1, x2) - margin), if y == -1

显然,这是为成对设计的,但这是为分类问题设计的

在我的问题中,我想实现一个提供以下损失函数的标准:
loss(x1,y2,d)=|d-cos(x1,x2)|

不幸的是,与之不同的是,我并不认为我不能简单地结合现有的标准来做到这一点

因此,我计划继续用痛苦的方式从中创建一个新模块

我的问题如下:

  • 我没有其他简单的解决方案,对吗
  • 如果我在torch7中实施我自己的标准:
    • 是否有一个框架来编写标准或指南
    • 我如何检查它是否有效?(如何进行单元测试?)
(在我看来,写一个对我来说似乎是正确的标准很容易——但在实践中并非如此)


提前感谢您提供的任何线索

您只需要为您的标准编写
updateOutput
updateGradInput
函数。然后,您可以像使用任何其他标准一样使用它。这是一副骷髅


是的,我就是这么想的。您可能还希望提供他/她的标准的批量实现。