Python 在tensorflow keras中建立Kronecker层

Python 在tensorflow keras中建立Kronecker层,python,numpy,tensorflow,keras,Python,Numpy,Tensorflow,Keras,我想问一下,是否有可能将克罗内克产品作为tf的一层。我对Kronecker产品的输入形状是(1,64)和(1,101,5)。我尝试了很多方法,但都不管用 我试过linalg.LinearOperatorKronecker,但我成功了 AttributeError:“Tensor”对象没有属性“是非单数的” 因此,我尝试对其进行numpy,并将其传递给linearropertorfullmatrix,但它返回AttributeError:“Tensor”对象没有属性“numpy” 所以我只能通过t

我想问一下,是否有可能将克罗内克产品作为tf的一层。我对Kronecker产品的输入形状是(1,64)和(1,101,5)。我尝试了很多方法,但都不管用

我试过linalg.LinearOperatorKronecker,但我成功了
AttributeError:“Tensor”对象没有属性“是非单数的”

因此,我尝试对其进行numpy,并将其传递给
linearropertorfullmatrix
,但它返回
AttributeError:“Tensor”对象没有属性“numpy”

所以我只能通过
tf.experimental.numpy.kron
找到一种方法,但是当一个调用摘要得到多个输出时,我无法在它上面构建其他层

input = Input(shape=input_shape)
hidden = BatchNormalization()(input)
hidden = Activation("relu")(hidden)
SEB = GlobalAveragePooling1D()(hidden)
SEB = Dense(32, activation="relu")(SEB)
SEB = Dense(64, activation="sigmoid")(SEB)

# resnet = Lambda(lambda x: tf.experimental.numpy.kron(x[0], x[1]))([hidden, SEB])
# resnet = Lambda(lambda x: tf.linalg.LinearOperatorKronecker([x[0], x[1]]))([hidden, SEB])
# resnet = Lambda(kronecker_product)([hidden, SEB])
# output = Dense(64, activation="sigmoid")(resnet)

model = Model(inputs=[input], outputs=[resnet])
因此,我想问,实现这一目标的正确方法是什么。多谢各位