自定义Keras投影层

时间:2020-03-15 20:06:35

标签: tensorflow keras deep-learning layer

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

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

鉴于我一直都知道n,我怎么能写一个自定义的tensorflow层呢?

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

1 个答案:

答案 0 :(得分: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.]]
相关问题