为TensorBoard image_summary可视化conv2d过滤器

时间:2016-11-18 01:16:04

标签: python numpy tensorflow tensorboard

我想要想象CNN的滤镜权重。它们的大小为height x width x input x output

但是,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')

1 个答案:

答案 0 :(得分:0)

正常图像批处理具有形状[batch, height, width, 3],因此您可以通过将过滤器转置为[output, height, width, 3]来使Tensorboard显示第一个卷积图层的一批彩色图像。这个答案有代码:How to visualize learned filters on tensorflow

对于其他图层中的权重,您只能显示input * output灰度图像。首先需要沿输入/输出通道分割张量,将张量转置并连接到形状[input * output, height, width, 1]。您可以在此处找到一些示例代码:https://github.com/tensorflow/tensorflow/issues/908