自定义 Keras 投影层

Custom Keras Projection Layer

我目前在 R^n+m 中输出数据,我想添加一层 "projecting" 输出向量到 R^m,即:

(x_1,...,x_m+n) -> (x_n+1,...,x_m+n).

鉴于我一直都知道 n,我该如何编写执行此操作的自定义 tensorflow 层?

我假设它是某种类型的 Lambda 层...

我希望这就是你要问的,给定你的向量长度 7 = n+m,你的 m 是 3(切片最后 3 个元素)。

输入

[[ 0.  1.  2.  3.  4.  5.  6.]
 [ 7.  8.  9. 10. 11. 12. 13.]]

示例代码

m = 3

test = Lambda(lambda x: x[:, -m:])
in1 = Input(shape=(7,))
out = test(in1)

# test
M = Model(inputs=[in1],outputs=[out])
M.compile(keras.optimizers.Adam(),loss='mse')
print(M.predict(np.arange(14,dtype=np.float32).reshape(2,7)))

输出

[[ 4.  5.  6.]
 [11. 12. 13.]]