【问题标题】:How to multiply a single layer of a neural network by a real number?如何将单层神经网络乘以实数?
【发布时间】:2021-04-22 00:11:26
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以通过继承 Keras 层类来创建自定义层,如此处所述 - Keras Custom Layer 并在您的神经网络中使用它,或者您可以使用 Lambda 层,如此处所述 - @987654322 @.

标签: python tensorflow neural-network


【解决方案1】:

如果我理解正确,您想将层的输出乘以标量 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方法中调用它们来产生最终的结果。

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 2013-03-02
    • 1970-01-01
    • 2019-03-10
    • 2016-09-02
    • 2018-09-23
    • 2012-09-22
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多