Я хочу построить лямбда-слой keras, который делает матрицу M и вектор x из пакета входных и выходных данных умножения матрицы Mx .В частности, то, что я хочу сделать, показано в следующем пробном коде
import numpy as np
import tensorflow as tf
keras = tf.keras
K=keras.backend
inputs = keras.layers.Input(shape=(3,))
def driftLayer(x):
M = np.eye(2)
M[0,1] = x[2]
out = K.matmul(x[:2],M)
return out
outputs = keras.layers.Lambda(driftLayer)(x)
model = keras.models.Model(inputs=inputs, outputs=outputs)
model.summary()
, который не работает, давая мне ValueError
ValueError: slice index 2 of dimension 0 out of bounds. for 'lambda_28/strided_slice' (op: 'StridedSlice') with input shapes: [2,1], [1], [1], [1] and with computed input tensors: input[1] = <2>, input[2] = <3>, input[3] = <1>.