Function 使用Keras的自定义损失函数来惩罚更负面的预测

Function 使用Keras的自定义损失函数来惩罚更负面的预测,function,keras,loss,Function,Keras,Loss,我理解mse将以相同的方式处理实际-预测和预测-实际。我想写一个自定义损失函数,这样 predict>actual的惩罚大于actual>predict 假设我因预测>实际而受到2倍的处罚。我将如何实现这样的功能 import numpy as np from keras.models import Model from keras.layers import Input import keras.backend as K from keras.engine.topology import

我理解mse将以相同的方式处理实际-预测和预测-实际。我想写一个自定义损失函数,这样 predict>actual的惩罚大于actual>predict 假设我因预测>实际而受到2倍的处罚。我将如何实现这样的功能

import numpy as np

from keras.models import Model
from keras.layers import Input

import keras.backend as K
from keras.engine.topology import Layer
from keras.layers.core import  Dense

from keras import objectives

def create_model():
    # define the size
    input_size = 6
    hidden_size = 15;
    # definte the model
    model = Sequential()
    model.add(Dense(input_size, input_dim=input_size, kernel_initializer='normal', activation='relu'))
    model.add(Dense(hidden_size, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))

    # mse is used as loss for the optimiser to converge quickly
    # mae is something you can quantify the manitude
    model.compile(optimizer='adam', loss='mse', metrics=['mae'])

    return model

early_stop = EarlyStopping(monitor='val_loss', patience=20)
history = model.fit(train_features, train_label, epochs=200, validation_split=0.2, verbose=0, shuffle=True)
predvalue = model.predict(test_features).flatten() * 100
如何实现这种丢失功能?

def customLoss(true,pred):
diff=pred-true
更大=K.更大(差值,0)
更大=K.cast(更大,K.floatx())#0表示更低,1表示更大
较大=较大+1#1表示较低,2表示较大
#在这里使用某种损失,例如mse或mae,或者从keras中选择一种
#使用mse:
返回K.均值(更大*K.平方(差值))
compile(优化器='adam',loss=customLoss)
def customLoss(true,pred):
diff=pred-true
更大=K.更大(差值,0)
更大=K.cast(更大,K.floatx())#0表示更低,1表示更大
较大=较大+1#1表示较低,2表示较大
#在这里使用某种损失,例如mse或mae,或者从keras中选择一种
#使用mse:
返回K.均值(更大*K.平方(差值))
compile(优化器='adam',loss=customLoss)

非常感谢您的支持help@HairyAss,欢迎使用Stack Overflow:)--我很高兴它有帮助。当你认为某些答复令人满意时,请注明:“非常感谢你的答复。)help@HairyAss,欢迎使用Stack Overflow:)--我很高兴它有帮助。当你认为某些答复令人满意时,请注明如下: