谁能告诉我 Keras 中的反向传播是如何完成的?我读到它在 Torch 中非常简单,在 Caffe 中很复杂,但我找不到任何关于使用 Keras 执行此操作的信息。我正在 Keras 中实现我自己的层(非常初学者),并且想知道如何进行反向传播。
先感谢您
你根本不知道。 (后期编辑:除非您创建自定义训练循环,仅用于高级用途)
Keras 自动进行反向传播。除了使用其中之一来训练模型之外,您绝对不需要做任何事情fit
方法。
您只需要注意以下几件事:
- 您想要通过反向传播更新的变量(这意味着:权重)必须在自定义层中定义
self.add_weight()
里面的方法build
方法。看编写你自己的 keras 层 https://keras.io/layers/writing-your-own-keras-layers/.
- 您所做的所有计算都必须使用基本运算符,例如
+
, -
, *
, /
or backend https://keras.io/backend/功能。后端还支持tensorflow/theano/CNTK函数。
- 您使用的函数必须是可微分的(例如,这意味着对于使用常量结果的函数,反向传播将失败)
这就是自动反向传播正常工作所需的全部内容。
如果您的图层没有可训练的权重,则不需要自定义图层,请创建Lambda
层代替(仅计算,没有可训练的权重)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)