我正在尝试使用Keras构建一个植物病害检测模型,但当我尝试加载数据集并将其转换为数组时,似乎出现了这个错误。错误中出现的图像在我的数据集中不存在,我不知道为什么
EPOCHS = 25
INIT_LR = 1e-3
BS = 32
default_image_size = tuple((256, 256))
image_size = 0
directory_root = "C:\\Users\\vipek\\Desktop\\PlantVillage-Dataset\\raw\\color"
width=256
height=256
depth=3
image_list, label_list = [], []
try:
print("[INFO] Loading images ...")
root_dir = listdir(directory_root)
for directory in root_dir :
# remove .DS_Store from list
if directory == ".DS_Store" :
root_dir.remove(directory)
for plant_folder in root_dir :
plant_disease_folder_list = listdir(f"{directory_root}/{plant_folder}")
for disease_folder in plant_disease_folder_list :
# remove .DS_Store from list
if disease_folder == ".DS_Store" :
plant_disease_folder_list.remove(disease_folder)
for plant_disease_folder in plant_disease_folder_list:
print(f"[INFO] Processing {plant_disease_folder} ...")
plant_disease_image_list = listdir(f"{directory_root}/{plant_folder}/{plant_disease_folder}/")
for single_plant_disease_image in plant_disease_image_list :
if single_plant_disease_image == ".DS_Store" :
plant_disease_image_list.remove(single_plant_disease_image)
for image in plant_disease_image_list[:500]:
image_directory = f"{directory_root}/{plant_folder}/{plant_disease_folder}/{image}"
if image_directory.endswith(".jpg") == True or image_directory.endswith(".JPG") == True:
image_list.append(convert_image_to_array(image_directory))
label_list.append(plant_disease_folder)
print("[INFO] Image loading completed")
except Exception as e:
print(f"Error : {e}")
这是我得到的输出:
[INFO] Loading images ...
[INFO] Processing 00416648-be6e-4bd4-bc8d-82f43f8a7240___GCREC_Bact.Sp 3110.JPG ...
Error : [WinError 267] The directory name is invalid: 'C:\Users\vipek\Desktop\PlantVillage-Dataset\raw\color/Tomato___Bacterial_spot/00416648-be6e-4bd4-bc8d-82f43f8a7240___GCREC_Bact.Sp 3110.JPG/'
我建议您使用
Path
python3库来处理路径。我的猜测是路径没有被正确识别。基于Path
库,我将更改代码中的几行,这里定义了路径:并确保避免
plant_disease_image_list
路径中的最后一个“/”我想说
00416648-be6e-4bd4-bc8d-82f43f8a7240___GCREC_Bact.Sp 3110.JPG
中的空格导致了这个错误你能加载任何图像吗?我认为您出现错误是因为您的目录无效,这意味着您的根被定义为
C:\something\something
,然后在某个时候切换到folder/folder/folder
。您只需要使用反斜杠。另外,我非常确定您的代码在指定文件类型(JPG)后添加了/
。那不应该在那里希望有帮助
相关问题 更多 >
编程相关推荐