我正在尝试在 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)
这会引发错误
<块引用>TypeError: 不支持 + 的操作数类型:'int' 和 'NoneType'
是否有任何解决方法来初始化可变大小的可训练权重?