これまで作成したCNN学習モデルがどのように、入力の特徴を捉えて、分類しているのか?興味がありますね。
今回は、中間層の出力を見てみたいと思います。
前回保存したモデルをロードして使います。学習モデルの保存とロードはこちらを参照ください。
既存モデルの入力と出力を指定して、中間層を出力するモデルを作成
ロードした既存の学習モデルの入力と出力を指定して、新たな中間層を出力するモデルを作成することができます。
models.Model(inputs=model.input, outputs=[model.layers[6].output])
今回は、Convolution層とPooling層の最後の層のを出力。64個のフィルタの出力結果を並べてみました。
出力は出力レイヤ数×縦12×横8×フィルタ数64となりますので、これを出力レイヤ数×フィルタ数64×縦12×横8にtransposeで軸変換してから8×8のグリッド上に表示しています。
「Pythonと機械学習であそぼう(CNN学習モデルの中間層を出力してみよう)」への2件のフィードバック
ピンバック: Pythonと機械学習であそぼう(GridSpecを使って図表を柔軟に配置してみよう) | ぼちぼちいこらい
ピンバック: Pythonと機械学習であそぼう(CNN学習モデルの中間層をぜ〜んぶ出力してみよう) | ぼちぼちいこらい