我需要实现一个类似于 Keras 的“hard-sigmoid”的激活函数,只是针对不同的极限值:
- 0 如果 x < 0
- 1 如果 x > 1
- x 如果 0 <= x <= 1
如何使用 tensorflow 后端 Keras 实现它?
我需要实现一个类似于 Keras 的“hard-sigmoid”的激活函数,只是针对不同的极限值:
如何使用 tensorflow 后端 Keras 实现它?
基于这篇文章, Keras 中的硬 sigmoid实现为
max(0, min(1, x*0.2 + 0.5)). 要获得您喜欢的图形,您必须调整移位和斜率参数,即在您的情况下将它们排除在外:
这将生成以下图表:
对于 Keras 的 TensorFlow 后端,您可以在此处找到实现。对于您的情况,这将是相应更改的 "hard-sigmoid":
zero = _to_tensor(0., x.dtype.base_dtype)
one = _to_tensor(1., x.dtype.base_dtype)
x = tf.clip_by_value(x, zero, one)
return x