2017-11-16 2 views
1

与えられたスライステンソルは、入力ベクトルのスライスを選択するために、Kerasにラムダレイヤーを実装しようとしています(例えば、(8,32,100)としましょう)。KerasのLambda Layerで可変インデックスを持つスライステンソル

私はいつも同じスライス(二次元での位置2と4の間に位置の間など、すべての入力を)望んでいた場合、私はこれが仕事だと思う:

Lambda(lambda x: x[:,2:4,:], output_shape=(3,100,), name="lambda_layer")(input)

しかし、私の場合は、のためにそれぞれのトレーニングサンプルを別のスライスにアクセスしてDenseレイヤーに接続することに興味があります。私はこれらの行の下のオプションを試しましたが、スカラー(iとj)をタプルとみなして(そしてshape=(1)を定義するのは無効です)、スカラー(iとj)をモデルに供給できません。

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])

答えて

0

あなたはこのような何かを行うことができる必要があります:https://github.com/fchollet/keras/blob/bcef86fad4227dcf9a7bb111cb6a81e29fba26c6/keras/layers/core.py#L651

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 

ここであなたの関数にkwargsからとして渡されたとして、あなたはどのようにargumentsを見ることができます

関連する問題