为TensorBoard image_summary可视化conv2d过滤器



我想可视化我的CNN的过滤器权重。尺寸为:height × width × input × 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')

正常图像批具有形状[batch, height, width, 3],因此您可以通过将过滤器转置到[output, height, width, 3]来使Tensorboard显示第一个卷积层的一批彩色图像。这个答案有代码:如何在tensorflow上可视化学习过滤器。

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