Agh*_*hie 5 lambda layer keras tensorflow
给定3D输入张量(假设为(8,32,100)),我试图在Keras中实现Lambda层以选择此类输入向量的切片。
如果我一直想要相同的切片(例如,所有维之间的所有输入都位于第二维的位置2和4之间),那么我认为这会起作用:
Lambda(lambda x: x[:,2:4,:], output_shape=(3,100,), name="lambda_layer")(input)
但就我而言,对于每个训练样本,我都有兴趣访问不同的切片,然后将它们连接到密集层。我在这些行下面尝试了该选项,但是我无法将标量(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])
你应该能够做这样的事情:
F = Lambda(lambda x, i, j: x[:,i:j,:], output_shape=(3,100,), name="lambda_layer") # Define your lambda layer
F.arguments = {'i': 2, 'j':4} # Update extra arguments to F
F(x) # Call F
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看如何将其arguments作为 kwargs 传递到您的函数:https://github.com/fchollet/keras/blob/bcef86fad4227dcf9a7bb111cb6a81e29fba26c6/keras/layers/core.py#L651
| 归档时间: |
|
| 查看次数: |
4139 次 |
| 最近记录: |