web-dev-qa-db-ja.com

ケラスでの後方伝播?

誰かがケラスで逆伝播がどのように行われるのか教えてもらえますか? Torchはとても簡単で、Caffeは複雑であると読みましたが、Kerasでそれを行うことについては何も見つかりません。私は自分のレイヤーをKeras(非常に初心者)で実装しており、後方伝播の方法を知りたいです。

前もって感謝します

17
Tassou

あなたは単にしません。 (後の編集:カスタムトレーニングループを作成する場合を除き、高度な使用のみ)

Kerasは自動的に逆伝播を行います。 fitメソッドの1つを使用してモデルをトレーニングすることを除いて、そのために必要なことはまったくありません。

あなたはいくつかのことに注意する必要があります:

  • バックプロパゲーションで更新する変数(つまり、重み)は、buildメソッド内のself.add_weight()メソッドを使用してカスタムレイヤーで定義する必要があります。 独自のケラスレイヤーの作成 を参照してください。
  • 実行するすべての計算では、+-*/または backend 関数などの基本的な演算子を使用する必要があります。バックエンドでは、tensorflow/theano/CNTK関数もサポートされています。

これは、自動バックプロパゲーションが適切に機能するために必要なすべてです。

レイヤーにトレーニング可能な重みがない場合、カスタムレイヤーは必要ありません。代わりにLambdaレイヤーを作成します(計算のみ、トレーニング可能な重みはありません)。

20
Daniel Möller