如何创建值为 1 或 -1 的可学习参数或权重向量

问题描述 投票:0回答:0

我需要建立一个称为可学习参数或权重向量的神经网络。这样,只会生成一个向量并与数据相乘。我创建如下:

from tensorflow.keras.layers import Layer
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model

class LearnableMultiplier(Layer):
    def __init__(self, **kwargs):
        super(LearnableMultiplier, self).__init__(**kwargs)

    def build(self, input_shape):
        self.kernel = self.add_weight(name='kernel',
                                      shape=(input_shape[-1],),
                                      initializer='glorot_uniform',
                                      trainable=True)

        super(LearnableMultiplier, self).build(input_shape)

    def call(self, inputs):
        return inputs * self.kernel

inputs = Input(shape=(64,))
multiplier = LearnableMultiplier()(inputs)  
model = Model(inputs=inputs, outputs=multiplier )

我需要从 1 或 -1 的值中选择上面定义的向量可学习参数。我的意思是与我的数据相乘的那个向量的每个值只能是 1 或 -1。那可行吗?我该怎么做?

python deep-learning neural-network conv-neural-network tf.keras
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.