代码之家  ›  专栏  ›  技术社区  ›  Tassou

Keras中的反向传播?

  •  23
  • Tassou  · 技术社区  · 7 年前

    谁能告诉我反向传播是如何在Keras中完成的?我读到在Torch里很容易,在Caffe里很复杂,但我找不到任何关于Keras的东西。我正在Keras中实现我自己的层(一个非常初学者),我想知道如何进行反向传播。

    提前谢谢你

    1 回复  |  直到 7 年前
        1
  •  30
  •   Daniel Möller    2 年前

    你根本不需要。(后期编辑:除非你正在创建自定义训练循环,仅用于高级用途)

    Keras自动进行反向传播。除了用一个 fit

    你只需要注意几件事:

    • 必须在自定义层中使用 self.add_weight() 方法内部 build 方法看见 writing your own keras layers .
    • 您正在进行的所有计算都必须使用基本运算符,例如 + , - , * / backend 功能。后端还支持tensorflow/theano/CNTK函数。
    • 您使用的函数必须是可微的(例如,这意味着对于使用常量结果的函数,反向传播将失败)

    这就是让自动反向传播正常工作所需的全部内容。

    如果层没有可训练的权重,则不需要自定义层,请创建 Lambda 而是分层(仅计算,无可训练权重)。