Keras:如何创建自定义Noisy Relu功能?

时间:2017-07-02 20:24:12

标签: python neural-network keras

如何在Keras中创建嘈杂的Relu功能? 特别是如何创建噪声Y~N(0,1)。

def relu_noise(x):
return x*(x>0) + N(0,1)

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Lambda图层完成该任务。

正常定义函数,但使用keras backend函数:

def relu_noise(x):

    isPositive = K.greater(x,0) 
    noise = K.random_normal((shape of x), mean=0.5, stddev=0.5)
         #I'm just not sure this is exactly the kind of noise you want. 

    return (x * isPositive) + noise

然后在lambda层中使用它:

from keras.layers import *

layer = Lambda(relu_noise, output_shape=(shape of x))

将此图层添加到Sequential模型中作为任何其他图层,或使用Model中的输入调用它。

您也可以将其直接用作激活功能:

layer = Dense(units, activation=relu_noise)