1
kerasをPythonで使用してレイヤ間のニューラルネットワークの接続を手動で定義したいと思います。デフォルトでは、ニューロンのすべてのペアが接続されます。私は下の図のように接続する必要があります。私はKerasで行うことができますどのようにレイヤ間のカスタム接続Keras
?
kerasをPythonで使用してレイヤ間のニューラルネットワークの接続を手動で定義したいと思います。デフォルトでは、ニューロンのすべてのペアが接続されます。私は下の図のように接続する必要があります。私はKerasで行うことができますどのようにレイヤ間のカスタム接続Keras
?
あなたは、機能APIモデルと独立した4つの異なるグループを使用することができます。
from keras.models import Model
from keras.layers import Dense, Input, Concatenate, Lambda
inputTensor = Input((8,))
まず、我々は4で、この入力を分割するラムダ層を使用することができます。
group1 = Lambda(lambda x: x[:,:2], output_shape=((2,)))(inputTensor)
group2 = Lambda(lambda x: x[:,2:4], output_shape=((2,)))(inputTensor)
group3 = Lambda(lambda x: x[:,4:6], output_shape=((2,)))(inputTensor)
group4 = Lambda(lambda x: x[:,6:], output_shape=((2,)))(inputTensor)
今、私たちはネットワークに従ってください:
#second layer in your image
group1 = Dense(1)(group1)
group2 = Dense(1)(group2)
group3 = Dense(1)(group3)
group4 = Dense(1)(group4)
最後のレイヤーを接続する前に、上の4つのテンソル:
outputTensor = Concatenate()([group1,group2,group3,group4])
最後の最後の層:
outputTensor = Dense(2)(outputTensor)
#create the model:
model = Model(inputTensor,outputTensor)
は偏見に注意してください。これらのレイヤーに偏りがないようにするには、use_bias=False
を使用します。
旧答え:後方
申し訳ありませんが、私は答えた初めて後方あなたの画像を見ました。私はこれが完了したためにここに保持しています...
from keras.models import Model
from keras.layers import Dense, Input, Concatenate
inputTensor = Input((2,))
#four groups of layers, all of them taking the same input tensor
group1 = Dense(1)(inputTensor)
group2 = Dense(1)(inputTensor)
group3 = Dense(1)(inputTensor)
group4 = Dense(1)(inputTensor)
#the next layer in each group takes the output of the previous layers
group1 = Dense(2)(group1)
group2 = Dense(2)(group2)
group3 = Dense(2)(group3)
group4 = Dense(2)(group4)
#now we join the results in a single tensor again:
outputTensor = Concatenate()([group1,group2,group3,group4])
#create the model:
model = Model(inputTensor,outputTensor)