为 Keras 创建新的合并层操作

Create new merge layer operation for Keras

我想创建自己的操作来合并网络。所以我查看了代码,并修改了 engine/topology.py 以创建我的新操作。

我没有修改 layers/wrappers.py 因为它只适用于 RNN,当我修改它时出现错误。

还有其他files/classes可以修改吗?难道我不需要在其他地方做其他事情来指定在向后传递期间要做什么吗?

如果您仅通过后端操作正确实施了您的操作,则无需更改任何其他文件。后端很聪明,可以自行计算反向传播的梯度。

这意味着所有会随时间变化的参数都必须使用 K.variable 定义,并且您只能使用 keras.backend 中定义的数学运算。否则后端将无法正常进行反向传播。

旁注:您可以实现自己的 class 来扩展 Merge class 并覆盖 call 函数,而不是修改 keras 的源代码为您的自定义操作。