尝试在 keras 中自定义损失函数(平滑 L1 损失),如下所示
ValueError:形状必须为 0 级,但对于 'cond/Switch'(操作:'Switch')为 5 级,输入形状为:[?,24,24,24,?], [?,24,24,24,? ]。
from keras import backend as K
import numpy as np
def smooth_L1_loss(y_true, y_pred):
THRESHOLD = K.variable(1.0)
mae = K.abs(y_true-y_pred)
flag = K.greater(mae, THRESHOLD)
loss = K.mean(K.switch(flag, (mae - 0.5), K.pow(mae, 2)), axis=-1)
return loss