Как я могу напечатать изображение карты объектов в tenorflow? - PullRequest
0 голосов
/ 09 мая 2019

Я студент, который изучает глубокое обучение, классификацию с использованием тензорного потока.

У меня только один вопрос. Как я могу напечатать изображение карты объекта?

Мне удалось преобразовать данные тензорного типа в данные numpy.ndarray.

LIKE THIS -> C8: Тензор ("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 голосов
/ 09 мая 2019

plt.imread() - чтение файла изображения с диска (например, в формате jpg или png) .

Ошибка ясно указывает, что именно эта инструкция вызывает ошибку, и что функция ожидала путь (в виде строки) или файлоподобный объект, а не массив, как вы пытались сделать.

Поскольку у вас уже есть массив в памяти, вам не нужно использовать эту инструкцию. Вроде как

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()

должно быть достаточно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...