我想在torch7 中实现一个新的标准。
基本上,我有一对样本,我有一个归一化的相似性实际值(我们将其表示为“d”)。
在现有的标准中,我能拥有的最接近的是CosineEmbeddingCriterion,它提供了以下损失:
⎧ 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源文件创建一个新模块。
我的问题如下:
- 我是否正确,我没有任何其他直接的解决方案?
- 如果我在 torch7 中实现自己的标准:
- 是否有框架可以编写标准或指南?
- 我如何检查它是否有效?(如何进行单元测试?)
(在我看来,写一个对我来说似乎正确的标准很容易——但在实践中却不是)
提前感谢您提供任何线索!