【发布时间】:2017-11-16 20:00:46
【问题描述】:
给定一个 3D 输入张量(比如说 (8,32,100)),我正在尝试在 Keras 中实现一个 Lambda 层来选择这样的输入向量的切片。
如果我总是想要相同的切片(例如,位于第二维位置 2 和 4 之间的所有输入),我认为这会起作用:
Lambda(lambda x: x[:,2:4,:], output_shape=(3,100,), name="lambda_layer")(input)
但就我而言,对于每个训练样本,我都有兴趣访问不同的切片,然后将它们连接到 Dense 层。我尝试了这些行下方的选项,但我无法将标量(i 和 j)提供给模型,因为它们将被视为元组(并且定义 shape=(1) 无效)。
i = Input(shape=(1,), dtype="int32")
j = Input(shape=(1,), dtype="int32")
Lambda(lambda x: x[:,i:j,:], output_shape=(3,100,), name="lambda_layer")([input,i,j])
【问题讨论】:
-
你找到解决这个问题的方法了吗?
标签: tensorflow lambda keras layer