始める無料で始める

カーネル応答の可視化

ニューラルネットワークの重みを解釈する方法の一つは、これらの重みに保存されたカーネルが世界をどのように「見ている」かを確認することです。つまり、このカーネルによって画像のどの性質が強調されるのかを調べます。この演習では、画像にカーネルを畳み込んで、その結果を可視化します。test_data 変数に含まれる画像、与えられたネットワークからカーネルを抽出する extract_kernel() 関数、そして第1章で定義した convolution() 関数を使って、カーネルを抽出し、ファイルからデータを読み込み、matplotlib で可視化してください。

ディープCNNの modelconvolution() 関数、さらに前の演習で抽出した kernel がワークスペースに用意されています。

Deep Learning をさらに極めたい方は、Advanced Deep Learning with Keras をご覧ください。Keras の Functional API を使ってドメイン知識を活かし、新しいタイプの問題を解く方法を学べます。

この演習はコースの一部です

Keras で学ぶ画像モデリング

コースを見る

演習の手順

  • convolution() 関数を使い、抽出したカーネルを画像配列の4番目の要素の第1チャンネルに畳み込みます。
  • 得られた畳み込み結果を imshow() で可視化します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

import matplotlib.pyplot as plt

# Convolve with the fourth image in test_data
out = ____(____[____, :, :, 0], kernel)

# Visualize the result
____
plt.show()
コードを編集して実行