我想可视化我的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