2017-03-29 43 views
2

我想剪輯值,我該怎麼做?Keras迴歸剪輯值

我嘗試使用這樣的:

from keras.backend.tensorflow_backend import clip 
from keras.layers.core import Lambda 

... 
model.add(Dense(1)) 
model.add(Activation('linear')) 
model.add(Lambda(lambda x: clip(x, min_value=200, max_value=1000))) 

不過沒關係,我把我的λ+夾的,它不會影響什麼嗎?

+0

你能打印出'model.summary()'?而且 - 通過剪輯不會影響任何你認爲值不被剪切的東西,是的? –

回答

2

它實際上必須在model.compile步驟中作爲損失實施。

from keras import backend as K 

def clipped_mse(y_true, y_pred): 
    return K.mean(K.square(K.clip(y_pred, 0., 1900.) - K.clip(y_true, 0., 1900.)), axis=-1) 

model.compile(loss=clipped_mse)