首页 > 解决方案 > 形状未知的 Keras 自定义层权重

问题描述

我正在尝试在 keras 中创建一个自定义层,以获取 3D 张量作为输入。然而,3D 张量的第一维是可变的,例如 - [12,128,157]、[20,128,157]、[8,128,157]。自定义层将具有形状取决于此可变维度的权重 -

self.kernel1 = self.add_weight(shape=(self.output_dim,input_dim),
                                   name = 'kernel1',
                                   initializer=self.kernel_initializer,
                                   regularizer=self.kernel_regularizer,
                                   constraint=self.kernel_constraint,
                                   trainable=True)

其中 input_dim 在这种情况下是可变形状( 12,20,8 等)。

样品模型 -

inputs=Input(shape = (None,128,157))  # tensor of shape (?,?,128,157)
x= CustomLayer(output_dim =10)(x)

这会引发错误

类型错误:+ 不支持的操作数类型:“int”和“NoneType”

是否有任何解决方法来初始化可变大小的可训练权重?

标签: pythontensorflowkeras

解决方案


推荐阅读