【问题标题】:Custom Keras Projection Layer自定义 Keras 投影层
【发布时间】:2020-03-15 20:06:35
【问题描述】:

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

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

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

我假设它是某种 Lambda 层...

【问题讨论】:

  • 你的意思是你有一个长度为 n+m 的向量,你想只切掉向量的最后 n 个元素吗?
  • 是的,所以如果我有 N 个数据点,每个数据点长度为 n+m,我希望这个层到 N 个数据点,每个数据点只输出最后 m 个元素。

标签: tensorflow keras deep-learning layer


【解决方案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.]]

【讨论】:

  • 太棒了!谢谢,你真的让它看起来很容易! :)
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 2018-04-18
  • 1970-01-01
相关资源
最近更新 更多