import csv
csv_path = 'your_csv_path'
images_base_path = 'your_images_path'
images=[]
labels=[]
with open(csv_path, newline='',encoding="utf8") as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
# And than you can do like this:
# images_complete_path = images_base_path + row[0]
# images.append(imread(images_complete_path))
# labels.append(row[1])
我认为可以使用ID标签迭代csv文件来读取图像。 例如:
然后,您可以获得图像和标签。 这只是一个想法,你可以很容易地实现它。 希望能有所帮助
您可以使用ImageDataGenerator的flow_from_dataframe方法使用CSV文件加载图像。
代码:
数据帧如下所示:
如果您的文件名中只有id。您可以使用apply方法添加jpg扩展
有关
ImageDataGenerator
提供的一整套数据扩充选项,您可以查看this有关
flow_from_dataframe
的完整选项集,您可以查看this使用这种方法,您不必担心标签不匹配,因为这是一种内置的TensorFlow方法。此外,文件会在必要时加载,这样可以避免主存混乱
对于培训,您可以简单地使用:
os.walk(directory)
按字母顺序获取文件名列表labels_list
列表。 使用tf.keras.preprocessing.image_dataset_from_directory()
与参数label=labels_list
一起使用这将为您提供一个
tf.data.Dataset
,您可以将其提供给培训函数相关问题 更多 >
编程相关推荐