2017-03-27 16 views
2

かの次のように私のコード:私は0.5それぞれを追加するために、マトリックスact1をしたい場合は、形状が(batch_size,10)Keras - 動作にどのように「記号変数」

main_input = Input(shape=(16), name='main_input') 
act1= Dense(10, activation='tanh')(main_input) 

は、今私は、シンボルact1として持っていますまたはデータを取得したい場合は、act1[:,0:5]

と混乱します。 MXnetではSymbol変数にいくつかの操作がありますが、kerasではレイヤー操作のように見えます。どのように私は変数で動作することができます....

希望男は私を助けることができます。 Thx

答えて

3

これは、いわゆるLambda関数を使いたいと思うようです。例えば、それはバッチ寸法を表すように、第1の寸法がskipedである。この例で

act1_new = Lambda(lambda x: x[:,:5], output_shape=(5,))(act1) 

act1_new = Lambda(lambda x: x + 0.5, output_shape=(10,))(act_1) 

2つ目:最初のケースは次のようになります。

+0

thx。もし私がシンボルaを持っていれば、 "a = Dense(1、activation = 'tanh')(act1)"、 ですが、レイヤーa1の出力にレイヤーaの出力を乗算します。 def mul_x(a、b): ans = K.dot(a、b) ans が返されますが、間違っています。私は10次元に1次元をブロードキャストすることはできません – Luv

+0

こんにちは私は質問したい.....ケラスの場合は、合計のシンボルを作成したい... フロップで:a = a + b ..まず、aはゼロでなければならず、更新するたびに新しい値bを加えます。 ラムダはグローバル変数を作成したり、2つの値を返すことができます。 Thx – Luv

+0

'multiplication = multiply([act1、a])'を試してください。 'keras.layers.merge'から' multiply'をインポートします。 –

関連する問題