python - Keras 层之间的自定义连接

标签 python neural-network keras keras-layer

我想使用 keras 和 Python 在神经网络中手动定义层与层之间的连接。默认情况下,连接在所有神经元对之间。我需要如下图所示进行连接。

required architecture

我如何在 Keras 中完成?

最佳答案

您可以使用函数式 API 模型并将四个不同的组分开:

from keras.models import Model
from keras.layers import Dense, Input, Concatenate, Lambda

inputTensor = Input((8,))

首先,我们可以使用 lambda 层将此输入一分为四:

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)

在我们连接最后一层之前,我们连接上面的四个张量:

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)

关于python - Keras 层之间的自定义连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47265412/

相关文章:

python - 丢弃数据报套接字的传入 'packets'

python - 如何保存和重复使用 keras 模型的所有设置?

python - 简单的递归神经网络输入形状

python - Keras LSTM 问题,如何正确设置时间序列的神经网络?

python - 检测 Django 测试中的权限错误

javascript - 在Python中使用函数声明全局变量

python - matplotlib分组数据框散点图中的颜色错误

python - 训练期间的 Tensorflow Slim 调试

python - 使用 MLP 的神经网络分类器

matlab - matlab中的神经网络模式识别