2016-10-04 7 views
1

TensorFlowでは、1つの入力が与えられたときにフィルタとアクティブ化レイヤを視覚化するのはかなり簡単です。TensorFlowの出力クラスに依存するDNNを視覚化する方法は?

しかし、私は逆の方法にもっと興味があります:出力層にクラスを(1ホットベクトルとして)与え、その特定のクラスの最適な入力イメージのようなものを見てください。

グラフを逆に実行する方法はありますか?

背景:私はGoogles Inception V3を15クラスで使用していますが、ネットワークの訓練をすでに大量のデータを使って行いました。今、私はモデルが異なるクラスをなぜ、どのように区別するのかを理解することに興味があります。

答えて

1

これの「基本」バージョンは簡単です。 w.r.tを最適化するのではなく、ネットワークのトレーニングと同じグラフを使用します。ネットワークのパラメータを使用して、入力(入力画像の形をした変数でなければならない)を最適化します。あなたの最適化ターゲットは、あなたの目標クラスのlogitを負(あなたが最大化したいので、しかしTF optimizerは最小限に抑えます)です。あなたは、イメージのいくつかの異なる初期値でそれを実行したい。

関連する手法がいくつかありますが、DeepDreamと敵対的な例を検索する場合は、多くの文献を見つける必要があります。

+0

しかし、TensorFlowのグラフが向けられているため、単に私の最適化ターゲットを変更することはできません。手動で逆モデルを再構築する必要がありますか? –

+0

@MarcOsterlandいいえ、それは同じです。唯一のことは、固定されているものと可変であるものです。通常の設定では、画像は固定され、モデルパラメータは変更されます。モデルパラメータは固定され、画像を変更します。 – etarion

+0

@etarion:しかし、練習用に変数を作成した後は、どのようにパラメータを固定しますか? – thomas

関連する問題