如何剪辑返回的值Lambda
layer?
我尝试使用这个:
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)))
但我把 Lambda+clip 放在哪里并不重要,它不会影响任何东西?
它实际上必须在 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)
编辑:实际上,现在事后看来,我认为这可能不是正确的方法。这实际上意味着我们不会因为超过太高的值而增加惩罚——这在某种程度上与我们想要的相反。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)