我想要想象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')
答案 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