Keras中如何對多個Input層加權求和?

時間 2021-06-08 09:27:51

1樓:busy

你試試:

from

keras.layers

import

Layer

,Input

from

keras

import

backendasK

from

keras.models

import

Model

class

CustLayer

(Layer

):def

__init__

(self,**

kwargs

):super

(CustLayer

,self).

__init__(**

kwargs

)def

build

(self

,input_shape

):self.w

=self

.add_weight

(name

='weights'

,shape=(

len(

input_shape),1

),initializer

='uniform'

,trainable

=True

)def

call

(self

,inputs,**

kwargs

):returnK.

dot(K.

stack

(inputs

,axis=-1

),self.w

)[...,-

1]a=

Input((7

,3))b

=Input((7

,3))c

=Input((7

,3))d

=Input((7

,3))output

=CustLayer

()([a,

b,c,

d])model

=Model([a

,b,c

,d],output

)print

(model

.output

.shape)

2樓:

class

WeightedSum

(Layer

):def

__init__

(self,a

,**kwargs

):self.a

=asuper

(WeightedSum

,self).

__init__(**

kwargs

)def

call

(self

,model_outputs

):return

self.a

*model_outputs[0

]+(1

-self.a

)*model_outputs[1

]def

compute_output_shape

(self

,input_shape

):return

input_shape[0

]# Create model1

inp1

=Input((5

,))#d1 = Dense(100)(inp1)#out1 = Dense(10)(d1)#model1 = Model(inp1, out1)# Create model2

inp2

=Input((7

,))#d2 = Dense(70)(inp2)#out2 = Dense(10)(d2)#model2 = Model(inp2, out2)# Weighed sum of the two models' outputs with a = 0.1

out=

WeightedSum

(0.1

)([inp1

,inp2

])# extend this part in your case# Create the merged modelmodel

=Model

(inputs=[

inp1

,inp2

],outputs=[

out])

keras中如何呼叫autoencoder?

年豆兒 貼個keras自己的autoencoder部落格教程 blog.keras.io building autoencoders in keras.html還有個中文版翻譯的 Keras與各種各樣的自編碼器 Young Well 提了問題後不久問題解決了,一直也忘了來回答,ling wei說的是...

hbase中過濾器如何多個使用?

IT野狐禪 定義過濾器鏈 FilterList filterList newFilterList FilterList.Operator.MUST PASS ALL 分頁過濾器 Filter filter2 newPageFilter 2 Rowfilter Filter filter1 newRo...

如何在 DAG 中找多個點的 LCA

阮行止 如果允許離線,整個問題可以做到 的複雜度。先考慮這個問題在樹上的版本。還用這個問題出了一道胡策 HNSDFZ 7 捂臉 這是題面 這是題解 先說結論 樹上多個點的LCA,就是DFS序最小的和DFS序最大的這兩個點的LCA。例如,在下圖的樹中,2,4,6,7 的LCA就是 2,7 的LCA。以...