我需要建立一个称为可学习参数或权重向量的神经网络。这样,只会生成一个向量并与数据相乘。我创建如下:
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。那可行吗?我该怎么做?