在谷歌的一篇文章(EXPLORING TRADEOFFS IN MODELS FOR LOW-LATENCY SPEECH ENHANCEMENT)中,使用了这个

损失函数为了使误差最小化,我使用Tensorflow在Python中编写了这个函数。
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但是它返回一个矩阵,而损失函数必须恢复一个标度,请纠正我,我的实现是错的吗?或者,可以使用损失作为矩阵来训练模型?
发布于 2020-04-07 20:46:16
你不应该只使用norm,而不使用l2_normalize吗?
l2_normalize返回一个使用范数值进行标准化的矩阵。
https://stackoverflow.com/questions/61077255
复制相似问题