Keras 使用某些未连接的神经元创建自定义网络
数据挖掘
神经网络
喀拉斯
2021-09-21 15:12:33
2个回答
我相信您可以使用功能 API 并使用您的输入来做到这一点。假设您有输入特征集(可以是单例集),,和 对于一些 在 . 如果您将输入拆分为, , 和 , 其中所有元素 被转换为仅包含 ,理论上可以建立这个模型。
这是一个演示这个想法的代码片段,给定, , 和 ,以及它们对应的形状。您可以通过扩展全连接层(通过在密集调用中将变量设置为 1)来扩展此模型。没有对代码工作的承诺:我已经刷过一些细节,但这应该让你开始解决你的问题。
input_A = Input(shape=shape_A)
input_B = Input(shape=shape_B)
input_C = Input(shape=shape_C)
A = Dense(1)(input_A)
A = Dense(1)(A)
B = Merge([input_A, input_B, input_C], mode='concat')
B = Dense(1)(B)
C = Merge([A,B],mode='concat)
C = Dense(1)(C)
B = Merge([A,B],mode='concat)
B = Dense(1)(B)
A = Dense(1)(A)
从这里,如果你想要一个输出,你可以调用 merge on, , 和 然后使用例如用于多标签分类的 Softmax 层添加密集(全连接)层。
Keras 确实提供了添加自定义层的机会。我不知道以前的版本,但 Keras 1.1.3 可以灵活地做到这一点。看看这个链接。这也包含自定义层的一个很好的例子。在这里,您可以尝试根据需要更改权重矩阵。我还建议您尝试阅读一些基本层的源代码以更好地理解它。
其它你可能感兴趣的问题