具有常量矩阵的点流水线数据

Dot pipeline data with constant matrix

是否可以通过常量转换在管道中间乘以批次?类似于

constant_non_trainable_matrix = numpy.array([...]) # shape (n,n)

input = tf.keras.layers.InputLayer(shape = (n,))
dense_1 = tf.keras.layers.Dense((n,))(input)
transform = MultiplyWithMatrix(constant_non_trainable_matrix)(dense_1)
output = tf.keras.layers.Dense((n,))(transform)

model = tf.keras.models.Model(inputs = input, outputs = output)

您可以使用 Lambda 层和 backend.dot() 来实现:

from keras import layers
from keras import backend as K

# ...
transformed = layers.Lambda(lambda x: K.dot(x, mat))(dense_1)

您还需要使用后端函数构造 mat 张量(例如 K.constant()K.variable() 等)。