首页 > 解决方案 > 如何将单层神经网络乘以实数?

问题描述

这个问题很简单。我想将我的神经网络中的单层乘以一个数字。

这个数字是n = max(abs(input)),所以实际输入将是input/n,而输出将是output*n。我想知道是否有办法在我的神经网络模型中插入这些计算。

在旁注中,我想这样做是因为我在某处读到一个常见的解决方案是规范化输入然后非规范化输出,这就是我想要做的。然而,在我的多输入神经网络中,一个输入是二进制数据,另一个是常规实数,所以我只想规范化这个真实输入,并对特定的下游层进行反规范化。

标签: pythontensorflowneural-network

解决方案


如果我理解正确,您想将层的输出乘以一个标量数量n。您可以使用自定义模型:

class MyModel(tf.keras.Model):

    def __init__(self):
        super(MyModel, self).__init__()
        self.dense1 = Dense(10)
        self.dense2 = Dense(20)

    def call(self, inputs):
        x = self.dense1(inputs)
        x = self.dense2(scalar_value*x)

我不知道你的模型是怎么搭建的,但是你可以在init方法中添加你需要的层,然后在call方法中调用它们来产生最终的结果。


推荐阅读