自定义 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.]]
我目前在 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.]]