2017-03-29 9 views
2

値をクリップしたい、どうすればいいですか?ケラス回帰クリップの値

私はこれを使用してみました:

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) 
関連する問題