我想使高斯噪声层的路缘石,这是强加噪声与不同的stddev水平到每个列的数据集。但是,由于我对编码不太了解,所以有一个很大的问题我无法自己解决。
使用Keras高斯噪声层的源代码,
我做了如下代码:
def call(self, inputs, training=None):
def noised():
temp=inputs
for i in range(100):
temp[:,i]=temp[:,i]+K.random_normal(shape=
(len(inputs),1),mean=0.,stddev=self.stddev[i])
return temp
return K.in_train_phase(noised, inputs, training=training)
object of type 'Tensor' has no len()
我相信错误来自不同的形状。
因为,原始代码如下:
def noised():
return inputs + K.random_normal(shape=K.shape(inputs),
mean=0.,
stddev=self.stddev)
使用的是符号类型的shape(K.shape),而我强加的是整数类型的number(len())。
如果你能给我一些解决方法,那对我真的会有很大的帮助。