使用Keras實現Tensor的相乘和相加

2021-08-20 04:57:14 字數 826 閱讀 2758

最近在寫行為識別的**,涉及到兩個網路的融合,這個融合是有加權的網路結果的融合,所以需要對網路的結果進行加權(相乘)和融合(相加)。

最初的想法是用keras.layers.add和keras.layers.multiply來做,後來發現這樣會報錯。

rate_rgb = k.variable(np.ones((1024,),dtype='float32')*0.8)

rate_esti = k.variable(np.ones((1024,),dtype='float32')*0.2)

weight_gru1 = multiply()([rate_rgb,gru1])

weight_gru2 = multiply()([rate_esti,gru2])

last = add()([weight_gru1,weight_gru2])

這麼寫會報錯,如下

attributeerror: 'variable'

object has no attribute '_keras_history'

後來在網上參考大神的部落格,改為如下

weight_1 = lambda(lambda x:x*0.8)

weight_2 = lambda(lambda x:x*0.2)

weight_gru1 = weight_1(gru1)

weight_gru2 = weight_2(gru2)

last = add()([weight_gru1,weight_gru2])

這樣就沒問題了。

keras實現分組卷積

分組卷積在pytorch中比較容易實現,只需要在卷積的時候設定group引數即可 比如設定分組數為2 conv group nn.conv2d c in,c out,kernel size 3,stride 3,padding 1,groups 2 但是,tensorflow中目前還沒有分組卷積,只...

Keras使用使用動態LSTM RNN

padding def generate mtp 100,batch 50 最長時間步,詞向量長度為200,batch size 50 origin input np.random.random sample batch,np.random.randint mtp 2,mtp 200 時間長隨機從m...

Keras學習 1 使用keras建立序列模型

keras學習 1 使用keras建立序列模型 sequential model就是一些列layers的簡單堆疊。首先,我們建立乙個簡單的前向全連線網路。輸入維度784 from keras.models import sequential from keras.layers import dens...