Пользовательская функция потерь Keras для метрики круга пятых - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь предсказать ключи музыки c, используя Keras NN, и пытаюсь найти подходящую функцию потерь, чтобы правильно показать расстояние между 24 общими клавишами диатони c.

Сейчас довольно просто найти расстояние между мажорной и минорной клавишами соответственно, но при добавлении штрафа за неправильную тональность (мажорная / минорная) это становится трудным.

Пятый круг

Идея состоит в том, что любой шаг вокруг внешнего или внутреннего круга является относительным штрафом 2, тогда как шаг от внешнего круга к штраф по внутреннему кругу равен единице.

т.е.:

  • от C до G b m будет иметь штраф (3 * 2) + 1 = 7

  • от D до E b будет иметь штраф (5 * 2) = 10

хотя для оценки потерь в сети это выглядит как действительный показатель c, я не уверен, что его можно реализовать как показатель потерь c в Керасе.

при рассмотрении только основных ключи пронумерованы 1-12 в порядке круга пятых

def MSE_COF(y_true, y_pred):
  delta = K.minimum(K.abs(y_pred - y_true), 12 - K.abs(y_pred - y_true)
  return K.mean(K.square(delta), axis=-1)

как бы расширить это, чтобы включить второстепенные ключи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...