在 keras 中创建自定义 'non differentiable' 激活函数

Create custom 'non differentiable' activation function in keras

是否可以创建以下形式的自定义激活函数:

def newactivation(x):
    if x <= -1:
        return -1
    elif x > -1 and x <= 1
        return x
    else :
        return 1

所以基本上它是 tanh(x) 的线性化版本。

函数在 -1 和 1 处有两个不可微分的位置是优化过程中的问题吗?

我该如何实现?

这个用clip函数很容易实现:

import keras.backend as K

def activation(x):
    return K.clip(x, -1.0, 1.0)

因为梯度永远不会爆炸,所以这应该不是问题,这个函数的形状类似于 ReLU。