不允许Keras随机正常后端

时间:2018-10-18 18:52:31

标签: python tensorflow keras keras-layer

我正在一个需要执行以下任务的项目中:

给出来自keras中上一层的输入,请执行以下操作:

  1. 计算该层输入的l2范数

  2. 计算上一层的权重张量的l2范数。

  3. 将这两个量乘以一个与A形状相同的张量,该张量充满高斯噪声。

将此新的计算量添加回A,并将其发送到下一层。

当前,我一直在使用以下功能:

def add_noise(sample,filter_scalar):
        input_shape = sample.__dict__["_keras_shape"]
        x = input_shape[1]
        y = input_shape[2]
        features = input_shape[3]

        #compute |A| * |B|
        dot_a = keras.layers.multiply([sample,sample])
        norm_a = Lambda(lambda x: filter_scalar * K.sqrt(K.cumsum(x)))(dot_a)

        #compute wij
        gaussian_weights = K.random_normal(shape=(x,y,features),mean=0.0,stddev=1.0)
        # keras.layers.add([gaussian_weights,gaussian_weights])
        #connect layers together again
        # norm_product = Lambda()(sample)
        # print("norm product",norm_product)

        return keras.layers.add([sample,norm_a])

我打算在功能API的各层之间调用此功能。

如您所见,我在实际产生高斯噪声时遇到问题。

0 个答案:

没有答案