Valores do Clipe de Regressão Keras

Eu quero recortar valores, como eu poderia fazer isso?

Eu tentei usar isso:

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))) 

Mas não importa onde eu coloquei o meu clipe Lambda +, isso não afeta nada?

Ele realmente tem que ser implementado como perda, na etapa 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) 

EDIT: Na verdade, agora em retrospectiva, penso que isso pode não ser a abordagem correta. Isso na verdade significa que não adicionamos penalidade por ultrapassar valores muito altos – é, de certo modo, o oposto do que queremos.

Intereting Posts