是否有张量流keras是一堆密集层的包装纸?

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

例如,这是微不足道的,但是为此有一层吗?并不是真正的卷积...每个数据点只有一个“密集层”(权重)。

In [266]: X = np.random.randn(10, 3); W = np.random.randn(10, 3, 4); (X[:, :, None] * W).sum(axis=1).shape
Out[266]: (10, 4)
tensorflow keras
1个回答
1
投票

创建自己的图层:

警告:仅适用于固定批次大小,您需要在模型中定义batch_shapebatch_input_shape !!!!

class SampleDense(Layer):
    def __init__(self, units, **kwargs):
        self.units = units
        super(SampleDense, self).__init__(**kwargs)

    def build(self, input_shape):
        weight_shape = input_shape + (self.units,)

        self.kernel = self.add_weight(name='kernel', 
                                      shape=weight_shape,
                                      initializer='uniform',
                                      trainable=True)
        self.built = True

    def call(self, inputs):
        inputs = K.expand_dims(inputs, axis=-1)
        outputs = inputs * self.kernel
        outputs = K.sum(outputs, axis=-2)

        return outputs

    def compute_output_shape(self, input_shape):
        return input_shape[:-1] + (self.units,)
© www.soinside.com 2019 - 2024. All rights reserved.