我想创建自己的合并网络的操作。所以我已经查看了代码,并修改了engine/topology.py
来创建我的新操作。
我没有修改layers/wrappers.py
,因为它仅适用于RNN,当我修改它时,我收到错误。
是否还有其他要修改的文件/类?不要在其他地方做其他事情来指定在向后传递期间该做什么?
答案 0 :(得分:1)
如果仅使用后端操作正确实施了操作,则不必更改任何其他文件。后端很聪明,它自己负责反向传播的梯度计算。
这意味着所有随时间变化的参数必须使用K.variable
定义,并且您只使用keras.backend
中定义的数学运算。否则后端将无法正确执行反向传播。
旁注:您可以实现自己的扩展Merge
类的类,并覆盖自定义操作的call
函数,而不是修改keras的源代码。