方式1 只含参数y_true和y_pred
特点:适合只利用y_true和y_pred设计简单的loss,比如MSE、MAE、交叉熵loss等等
import keras.backend as K
"""
这里定义model
"""
# 只含参数 y_true, y_pred
# MSE loss
def mean_squared_error(y_true, y_pred):
# 这里自己写,或者直接return
return K.mean(K.square(y_pred - y_true), axis=-1)
model.compile(optimizer='rmsprop',
loss=mean_squared_error, # 这里对应上面loss函数名称即可
metrics=['accuracy', mean_pred])
"""
下面为其他loss函数,可替换上面的MSE loss
"""
def mean_absolute_error(y_true, y_pred):
return K.mean(K.abs(y_pred - y_true), axis=-1)
def mean_absolute_percentage_error(y_true, y_pred):
diff = K.abs((y_true - y_pred) / K.clip(K.abs(y_true), K.epsilon(), np.inf))
r