2024-09-28 01:31:32 发布
网友
我想将下面的函数编码到TS层中。设x为d维向量。 x->;tf.linalg.diag(x)*A+b
其中A是可训练的dxd矩阵,b是可训练的(d维)向量
如果A和b不存在,我会使用Lambda层,但因为它们是。。。我该怎么办呢
p.s.:我不想给lambda层喂食教育用的灌水器:
Lambda(lambda x: tf.linalg.diag(x)))
进入一个具有“身份”激活的完全连接层。(我知道这是可行的,但它并不能帮助我真正学会如何解决这个问题:)
您可以创建自定义层并将函数放入调用方法中
class Custom_layer(keras.layers.Layer): def __init__(self, dim): super(Custom_layer, self).__init__() self.dim = dim # add trainable weight self.weight = self.add_weight(shape=(dim,dim),trainable=True) # add trainable bias self.bias = self.add_weight(shape=(dim)) def call(self, input): # your function return (tf.linalg.diag(input)*self.weight) + self.bias def get_config(self): config = super(Custom_layer, self).get_config() config['dim'] = self.dim return config
和普通图层一样使用它,在使用它的时候给它加上尺寸参数
my_layer = Custom_layer(desire_dimension) output = my_layer(input)
您可以创建自定义层并将函数放入调用方法中
和普通图层一样使用它,在使用它的时候给它加上尺寸参数
相关问题 更多 >
编程相关推荐