如何在张量流中打印特征图图像?

时间:2019-05-09 05:29:01

标签: python tensorflow matplotlib deep-learning

我是一名学生,正在研究使用张量流进行深度学习和分类。

我只是一个问题。如何打印要素地图图像?

我成功将张量类型数据转换为numpy.ndarray类型数据。

喜欢-> C8:Tensor(“ C8:0”,shape =(0,7,7,0),dtype = float32)转换为ndarray。) enter image description here

但是,我无法显示此功能图。

第一种方法:使用matplotlib.pyplot模块

ep, temp_array, weight_1 = sess.run([tf.argmax(result, 1), c8, wfc1], feed_dict={X: ex, istraining.name: False, keep_prob: 1.0})

print(type(temp_array), temp_array.shape, "\n", temp_array[0, :, :, 0])

img = plt.imread(temp_array[0, :, :, 0])
plt.imshow(img)
plt.show()

功能映射位于temp_array变量中。然后,它(ndarray类型)被打印成该图像。

我收到错误消息。

Traceback (most recent call last):
  File "D:/3Laaaaab/DC/hand_recog_demo_1.py", line 352, in <module>
    img = plt.imread(temp_array[0, :, :, 0])
  File "c:\users\administrator\appdata\local\programs\python\python36\lib\site-packages\matplotlib\pyplot.py", line 2152, in imread
    return matplotlib.image.imread(fname, format)
  File "c:\users\administrator\appdata\local\programs\python\python36\lib\site-packages\matplotlib\image.py", line 1369, in imread
    return handler(fname)
TypeError: Object does not appear to be an 8-bit string path or a Python file-like object

第二种方式:使用cv2模块

ep, temp_array, weight_1 = sess.run([tf.argmax(result, 1), c8, wfc1], feed_dict={X: ex, istraining.name: False, keep_prob: 1.0})

print(type(temp_array), temp_array.shape, "\n", temp_array[0, :, :, 0])

cv2.imshow("windows", temp_array[0, :, :, 0])
cv2.waitKey(1)

是的,此消息源运行良好,但是我有一个问题。

,即结果图像太小。所以我看不到。

enter image description here

我如何才能完美地看到地图?

1 个答案:

答案 0 :(得分:0)

plt.imread() is to read a picture file from the disk (for ex a jpg or png file)

该错误清楚地表明是引发该错误的指令,并且该函数期望的是路径(作为字符串)或类似文件的对象,而不是您尝试执行的数组。

由于已经在内存中存储了数组,因此不需要使用该指令。好像是

ep, temp_array, weight_1 = sess.run([tf.argmax(result, 1), c8, wfc1], feed_dict={X: ex, istraining.name: False, keep_prob: 1.0})
plt.imshow(temp_array[0, :, :, 0])
plt.show()

应该足够了吗?