如何定义 Kronecker product layer of 2 keras layers of shape (None, 4096) 执行?

How to define Kronecker product layer of 2 keras layers of shape (None, 4096) is performed?

假设有 2 个 different/separate keras 层, encoder_1 & encoder_2 两者都具有 (None, 4096) 的输出形状。 现在如何定义 keras 乘法层,它给出 (None, 4096, 4096) 作为它的输出形状。 这与 Kronecker 产品相同吗? 如果不相同 请说明如何实现 2 层 命名的 Kronecker 积,encoder_1 & encoder_2?

因此,在插入长度为 1 的维度后,您应该可以简单地使用 Keras 的 Dot layer or dot 方法来实现:

import tensorflow as tf
from tensorflow.keras.layers import dot

encoder_1 = tf.expand_dims(encoder_1, axis=2)
encoder_2 = tf.expand_dims(encoder_2, axis=1)
outer = dot([encoder_1, encoder_2], axes=(2, 1))

outer 应该是形状为 (None, 4096, 4096).

的张量