自定义Keras投影层

问题描述 投票:2回答:1

我目前正在以R ^ n + m输出数据,我想添加一层将输出矢量“投影”到R ^ m,即:

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

鉴于我一直都知道n,我该如何编写一个自定义的tensorflow层来做到这一点,没有什么可训练的?

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

tensorflow keras deep-learning layer
1个回答
1
投票

我希望这是您要的,给定长度为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.]]
© www.soinside.com 2019 - 2024. All rights reserved.