我想在火炬7中实施新的标准。
基本上,我有一对样本,我有一个标准化的相似性实际值(让我们表示它' d')。
在现有的Criterion中,我最接近的是CosineEmbeddingCriterion,它提供了以下损失:
⎧ 1 - cos(x1, x2), if y == 1
loss(x, y) = ⎨
⎩ max(0, cos(x1, x2) - margin), if y == -1
显然这是为双人设计的,但这是针对分类问题的。
在我的问题中,我想实现一个提供以下损失函数的Criterion:
loss(x1, y2, d) = | d - cos(x1,x2) |
不幸的是,与in this question不同,在我看来,我不能简单地将现有标准结合起来。
所以我计划从torch7 source file.
开始创建一个新模块我的问题如下:
(在我看来,很容易写出一个对我来说似乎正确的标准 - 但不是在实践中)
提前感谢您的任何线索!!
答案 0 :(得分:1)
您只需要为您的标准编写updateOutput
和updateGradInput
函数。然后,您可以像任何其他标准一样使用它。这是一个骨架。