如何在Tensorflow CNN中显示特征图(过滤的图层)?

时间:2018-07-18 16:58:27

标签: python tensorflow

我需要一些帮助,使用TensorFlow在植物叶片分类程序中查看特征图。

我有一个功能,可以摄取任意数量的图像(尺寸为128x128x3),并使用某些滤镜(尺寸为3x3x32)对图像进行卷积。

layer_conv1 = create_convolutional_layer(input=x,
           num_input_channels=num_channels,
           conv_filter_size=filter_size_conv1,
           num_filters=num_filters_conv1)
print(layer_conv1)

代码输出打印的张量:Tensor("Relu_182:0", shape=(?, 64, 64, 32), dtype=float32)

我试图从张量在控制台上显示图像,并且尝试了以下代码(使用matplotlib.pyplot):

session.run(tf.global_variables_initializer())
img = session.run(layer_conv1)
plt.imshow(img)
plt.show()

""
img = layer_conv1[0,:,:,:].eval(session=session)
""
""

两者都不起作用。

You must feed a value for placeholder tensor 'x_54' with dtype float and shape [?,128,128,3]是发生的错误之一。

1 个答案:

答案 0 :(得分:0)

您可以使用

定义图层
layer_conv1 = create_convolutional_layer(input=x,...)

在这里,x是一个占位符,定义为类似

x = tf.Placeholder(tf.float32, [None, 128, 128, 3])

调用img = session.run(layer_conv1)时,您需要像这样输入x的值

img = session.run(layer_conv1, feed_dict={x: myImage})

其中myImage是代表图像的[1, 128, 128, 3]形状的数字数组。