2016-11-18 5 views
0

私のCNNのフィルタの重みを視覚化したいと思います。サイズはheight x width x input x outputです。TensorBoardのconv2dフィルタを視覚化するimage_summary

しかし、TensorBoardはX channelsbatches X height X width形状のテンソルであることimage_summaryを必要とします。

フィルタの重みを正しい形式に変換するにはどうすればよいですか?

いくつかのコンテキスト:

W1 = tf.Variable(tf.random_normal([5, 5, 1, 64]), name='W1') 
conv = tf.nn.conv2d(x, W1, strides=[1, 1, 1, 1], padding='SAME') 

答えて

0

通常の画像のバッチはそうあなたがTensorboardが[output, height, width, 3]にフィルタを転置することにより、第1コンボリューション層用着色画像のバッチを表示することができます[batch, height, width, 3]を形作る持っています。この回答のコードはHow to visualize learned filters on tensorflowです。

他のレイヤーのウエイトについては、input * outputのグレースケールイメージしか表示できません。最初に入出力チャンネルに沿ってテンソルを分割し、テンソルを転置して連結して[input * output, height, width, 1]の形にする必要があります。いくつかのサンプルコードはここにあります:https://github.com/tensorflow/tensorflow/issues/908