![](/img/trans.png)
[英]TypeError: expected str, bytes or os.PathLike object, not list convert
[英]How can I solve "TypeError: expected str, bytes or os.PathLike object, not list"
我正在尝试从掌纹做我的人检测项目。
有001、002、003、004、......、091、092形式的文件夹,每个文件夹有7个训练数据。 我想把所有的数据一个一个地拿来训练它们。
示例文件路径:
'Dataset/TrainWithROI/001/001-Train1.JPG',
'Dataset/TrainWithROI/001/001-Train2.JPG',
'Dataset/TrainWithROI/001/001-Train3.JPG',
'Dataset/TrainWithROI/001/001-Train4.JPG',
'Dataset/TrainWithROI/001/001-Train5.JPG',
'Dataset/TrainWithROI/001/001-Train6.JPG',
'Dataset/TrainWithROI/001/001-Train7.JPG',
但是在我开始训练模型之前,我遇到了这样的错误。
def open_images(path):
image = load_img(path, color_mode = 'rgb')
image = np.array(image)/255.0
return image
def get_labels(paths):
label = []
for path in paths:
path = path.split('/')[-2]
label.append(labels.index(path))
return label
def data_gen(data_paths, batch_size=1):
img=[]
lab=[]
for i in range(0, len(data_paths), batch_size):
paths = data_paths[i:i+batch_size]
images = open_images(paths)
img.append(open_images(paths).reshape(224, 224, 3))
labels = get_labels(paths)
lab.append(get_labels(paths))
#yield images,np.array(labels)
return np.array(img) , np.array(lab)
模型:
X_train, y_train = data_gen(train_paths)
X_test, y_test = data_gen(test_paths)
错误:
TypeError:预期的 str、字节或 os.PathLike 对象,而不是列表
您正在提供open_images
函数的路径列表,但未对其进行编码以支持该路径。 你可以修改这个函数来处理这个问题,试试这个代码:
def open_images(path):
images = []
for path in paths:
image = load_img(path, color_mode = 'rgb')
image = np.array(image)/255.0
images.append(image)
return np.array(images)
您正在将图像列表传递给函数open_images
,但此函数仅用于打开一个图像,而不是列表。
尝试这个:
def data_gen(data_paths, batch_size=1):
img=[]
lab=[]
for i in range(0, len(data_paths), batch_size):
paths = data_paths[i:i+batch_size]
for x in paths:
images = open_images(x)
img.append(open_images(x).reshape(224, 224, 3))
labels = get_labels(x)
lab.append(get_labels(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.