在定义自定义损失函数时,我要:
使用numpy操作输入y_pred张量 将输入y_pred张量处理为外部二进制执行并获得结果 演示代码如下:
def mse_my_loss(y_true,y_pred):
Q1 = K.mean(K.square(y_pred - y_true), axis=-1)
y_in = y_pred.numpy()
file_wave = './tools/data.raw'
librosa.output.write_wav(file_wave, y_pred, 16000)
CMD = './tools/EVAL +16000 ' + file_wave
os.system(CMD)
loss = readresult()
return Q1 + loss
实现这一目标是否可行?
或者自定义损失函数中只能使用keras或后端函数,以使keras对张量执行自动梯度计算?
非常感谢。
答案 0 :(得分:1)
是的,只能使用后端函数,因为Keras需要计算权重相对于损失函数的梯度,并且只有后端函数是符号性的(因此传播梯度)。