#python #tensorflow #matplotlib
#python #tensorflow #matplotlib
Вопрос:
Я новичок в python. При попытке построить изображение, используя приведенный ниже код —
import tensorflow as tf;
import os, sys;
import skimage;
from skimage.color import rgb2gray
import matplotlib.pyplot as p<
import random
def load_data(data_directory) :
directories = [d for d in os.listdir(data_directory) if os.path.isdir(os.path.join(data_directory,d))]
labels =[]
images =[]
for d in directories:
label_directory = os.path.join(data_directory,d)
file_names = [os.path.join(label_directory, f)
for f in os.listdir(label_directory)
if f.endswith(".ppm")]
for f in file_names:
images.append(skimage.data)
labels.append(int(d))
return images, labels
ROOT_PATH = "C:/Users/Administrator/Downloads/"
train_data_directory= os.path.join(ROOT_PATH, "BelgiumTSC_Training/Training")
test_data_directory = os.path.join(ROOT_PATH, "BelgiumTSC_Testing/Testing")
images, labels = load_data(train_data_directory)
traffic_signs = [300, 2250, 3650, 4000]
for i in range(len(traffic_signs)):
plt.subplot(1, 4, i 1)
plt.axis('off')
plt.imshow(images[traffic_signs[i]])
plt.subplt_adjust(wspace=0.5)
plt.show()
Я получаю приведенную ниже ошибку —
raise TypeError("Image data cannot be converted to float")
Ошибка типа: данные изображения не могут быть преобразованы в float
Может кто-нибудь, пожалуйста, объяснить, где я ошибаюсь. Я следую руководству от — https://www.datacamp.com/community/tutorials/tensorflow-tutorial#tensors
Комментарии:
1. можете ли вы указать тип данных переменной image? и представление о переменной images
2. Метод
load_data
из какого пакета?3. Я попробовал с тем же кодом, который есть в datacamp, и я не столкнулся с какой-либо ошибкой как таковой. пожалуйста, проверьте длину вашей переменной images
print(len(images))
возможно, изображения не импортированы4. Я добавил метод — load_data. Также, когда я пытался распечатать len (изображения) Я получаю 4575.
5. пожалуйста, предоставьте полное сообщение об ошибке
Ответ №1:
В вашем методе load_data
in row images.append(skimage.data)
вы фактически не загружаете никакого изображения, вы просто добавляете модуль python skimage.data
к изображениям, и именно по этой причине он ничего не может показать, потому что ваш images
не содержит никакого изображения. Вы, вероятно, хотите images.append(skimage.data.load(f))
вместо этого.