首页 > 解决方案 > 具有常数矩阵的点流水线数据

问题描述

是否可以将管道中间的批次与恒定转换相乘?类似的东西

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)

标签: pythonkerasmatrix-multiplicationkeras-layer

解决方案


您可以使用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()


推荐阅读