有人可以告诉我Keras中的反向传播是如何做的吗?我读到说在Torch中很容易,在Caffe中很复杂,但是我找不到关于如何在Keras中实现它的任何信息。我正在Keras中实现自己的层(我是个非常初级的学习者),想知道如何进行反向传播。
提前感谢您。
有人可以告诉我Keras中的反向传播是如何做的吗?我读到说在Torch中很容易,在Caffe中很复杂,但是我找不到关于如何在Keras中实现它的任何信息。我正在Keras中实现自己的层(我是个非常初级的学习者),想知道如何进行反向传播。
提前感谢您。
你根本不需要手动进行反向传播(除非你正在创建自定义训练循环,这只适用于高级使用情况)。
Keras会自动进行反向传播。你所需要做的就是使用其中一种fit
方法对模型进行训练。
你只需要注意以下几点:
self.add_weight()
方法在build
方法中定义。详见编写你自己的Keras层。+
、-
、*
、/
或backend函数。TensorFlow/Theano/CNTK函数也受支持。这就是你需要让自动反向传播正常工作的全部内容。
如果你的层没有可训练的权重,你不需要使用自定义层,而是使用Lambda
层(仅进行计算,没有可训练的权重)。