Keras-customized-layer
提供:Dev Guides
Keras-カスタマイズされたレイヤー
Kerasでは、独自のカスタマイズされたレイヤーを作成できます。 新しいレイヤーが作成されると、制限なしに任意のモデルで使用できます。 この章では、新しいレイヤーを作成する方法を学びましょう。
Kerasはベース layer クラスを提供します。これは、独自にカスタマイズされたレイヤーを作成するためにサブクラス化できるレイヤーです。 正規分布に基づいて重みを見つける単純なレイヤーを作成して、トレーニング中に入力とその重みの積の合計を求める基本的な計算を行います。
ステップ1:必要なモジュールをインポートする
まず、必要なモジュールをインポートしましょう-
ここに、
- backend は dot 関数にアクセスするために使用されます。
- Layer は基本クラスであり、サブクラス化してレイヤーを作成します
ステップ2:レイヤークラスを定義する
手順3:レイヤークラスを初期化する
以下に指定するように新しいクラスを初期化しましょう-
ここに、
- *行2 *は出力の次元を設定します。
- * 3行目*は、ベースレイヤーまたはスーパーレイヤーの init 関数を呼び出します。
ステップ4:ビルドメソッドを実装する
ここに、
- * 1行目*は、* build_メソッドを1つの引数 input_shape で定義しています。 入力データの形状はinput_shapeで参照されます。
- *行2 *は、入力形状に対応する重みを作成し、カーネルに設定します。 これは、レイヤーのカスタム機能です。 「通常」のイニシャライザを使用して重みを作成します。
- * 6行目*は、基本クラスの build メソッドを呼び出します。
ステップ5:呼び出しメソッドを実装する
カスタム call メソッドは次のとおりです
ここに、
- 行1 *は、 *call メソッドを1つの引数 input_data で定義しています。 input_dataは、レイヤーの入力データです。
- * 2行目*入力データ input_data とレイヤーのカーネル self.kernel のドット積を返します
ステップ6:compute_output_shapeメソッドを実装する
ここに、
行1 *は、 *compute_output_shape メソッドを1つの引数 input_shape で定義しています
*行2 *は、レイヤーの初期化中に入力データの形状と出力次元セットを使用して出力形状を計算します。
カスタマイズしたレイヤーを使用する
以下に示すように、カスタマイズされたレイヤーを使用して簡単なモデルを作成しましょう-
ここに、
- MyCustomLayer は、32単位と*(16、)*を入力形状として使用してモデルに追加されます
アプリケーションを実行すると、以下のようにモデルの概要が印刷されます-