вычислить потери между матрицами - PullRequest
1 голос
/ 07 апреля 2020

В одной из статей Google ( ИЗУЧЕНИЕ ТОРГОВЛИ В МОДЕЛЯХ ДЛЯ РАСШИРЕНИЯ РЕЧИ НИЗКОРОЧНОЙ ) используйте это

enter image description here

Функция потери, чтобы минимизировать ошибку, я кодировал эту функцию в Python с помощью Tensorflow,

def loss_cal(noise_source, mask, target):
    landa = 0.113
    masked_spec = noise_source*mask
    cc = K.l2_normalize(tf.abs(tf.pow(tf.maximum(1e-4, target), 0.3))-tf.abs(tf.pow(tf.maximum(1e-4, masked_spec), 0.3)))
    cm = K.l2_normalize(tf.math.pow(tf.maximum(1e-4, target), 0.3)-tf.math.pow(tf.maximum(1e-4, masked_spec), 0.3))
    res = tf.math.square(cc)+landa*tf.math.square(cm)
    return res

, но она возвращает матрицу, в то время как функции потери должны возвращать скаляр, пожалуйста, исправьте меня, это мой реализация неверна? или можно обучить модель с потерей в качестве матрицы?

1 Ответ

0 голосов
/ 07 апреля 2020

Разве вы не должны использовать только норма , а не l2_normalize ?

l2_normalize возвращает матрицу, нормализованную со значением нормы.

...