如何在Keras中创建嘈杂的Relu功能? 特别是如何创建噪声Y~N(0,1)。
def relu_noise(x):
return x*(x>0) + N(0,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)