Python 如何将一层神经网络乘以一个实数?

Python 如何将一层神经网络乘以一个实数?,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,问题很简单。我想把神经网络中的一层乘以一个数字 该数字为n=max(abs(input)),因此实际输入为input/n,而输出为output*n。我想知道是否有办法将这些计算结果插入到我的神经网络模型中 另一方面,我想这样做是因为我在某个地方读到一个常见的解决方案是对输入进行规范化,然后对输出进行反规范化,这就是我想做的。然而,在我的多输入神经网络中,一个输入是二进制数据,而另一个是正则实数,因此我只想规范化这个实数输入,并反规范化一个特定的下游层。如果我得到了正确的结果,你想用一个标量乘以一

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

该数字为
n=max(abs(input))
,因此实际输入为
input/n
,而输出为
output*n
。我想知道是否有办法将这些计算结果插入到我的神经网络模型中


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

如果我得到了正确的结果,你想用一个标量乘以一个层的输出
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方法中调用它们以生成最终结果。

您可以通过如下所述对Keras layer类进行子类化来创建自定义层,并在神经网络中使用该层,也可以使用Lambda层来实现此目的,如下所述。