Я хочу реализовать новый критерий в torch7.
По сути, у меня есть пара образцов, для которых у меня есть нормализованное реальное значение сходства (обозначим его «d»).
Среди существующих критериев наиболее близким мне может быть CosineEmbeddingCriterion что приводит к следующим потерям:
⎧ 1 - cos(x1, x2), if y == 1
loss(x, y) = ⎨
⎩ max(0, cos(x1, x2) - margin), if y == -1
Obviously this is designed for pairs, but this is for classification problems.
В моей проблеме я хочу реализовать критерий, который обеспечивает следующую функцию потерь: loss(x1, y2, d) = | d - cos(x1,x2) |
К сожалению, в отличие от в этом вопросе мне не кажется, что Я не могу просто объединить существующие критерии, чтобы сделать это.
Поэтому я планирую пойти по мучительному пути создания нового модуля из исходного файла torch7 .
Мои вопросы заключаются в следующем:
- Правильно ли я понимаю, что у меня нет других простых решений?
- If I implement my own Criterion in torch7 :
- is there a skeleton to write criterion or a guide ?
- как я могу проверить, что он действителен? (как провести модульное тестирование?)
(мне кажется, очень легко написать критерий, который кажется мне правильным, но не на практике)
Заранее спасибо за любую подсказку!!