2016-11-18 19 views
0

我想要可視化CNN的濾鏡權重。它們的尺寸爲height x width x input x output可視化TensorBoard的conv2d濾鏡image_summary

然而,TensorBoard要求image_summary是形狀batches X height X width X channels的張量。

如何將我的過濾器權重轉換爲正確的形式?

一些背景:

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

正常圖像批處理具有形狀[batch, height, width, 3]這樣就可以使Tensorboard通過轉置過濾器[output, height, width, 3]展示了一批彩色圖像的第一卷積層。這個答案有代碼:How to visualize learned filters on tensorflow

對於其他圖層中的權重,只能顯示input * output灰度圖像。您首先需要沿輸入/輸出通道分裂張量,轉置並連接張量以形成[input * output, height, width, 1]。你可以在這裏找到一些示例代碼:https://github.com/tensorflow/tensorflow/issues/908