【发布时间】:2021-01-31 16:45:30
【问题描述】:
我尝试执行以下操作:
- 我在 Google Colab 上有 2 个文件夹。第一个包含 PNG 图像,第二个包含描述每个图像的 CSV。对应的 CSV 文件与他们描述的 PNG 名称相同,唯一的区别是扩展名。
示例 PNG文件: dog_1.png、dog_2.png、dog_3.png
他们的 CSV 文件是:dog_1.csv、dog_2.csv、dog_3.csv。
每个文件的内容是: 品种、颜色、重量 7、22、15
我使用函数 get_class_label(SELECTED_FEATURE, label_file) 从 csv 中选择一个特征,然后根据该特定数据将数据拆分为类:
示例 SELECTED_FEATURE='品种' 因此,对于我在类标签上方显示的 csv 示例图像将是“7”。 标签基于每个图像的选定特征的值。
- 我浏览了所有 PNG 文件。对于它们中的每一个,我从匹配的 CSV 中获取标签并构建一个标签列表。
- 文档 (https://www.tensorflow.org/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory) 指出:
标签应按字母数字顺序排列 图片文件路径(通过 Python 中的 os.walk(directory) 获取)。
所以我就是这样做的:
label_list = []
for path, directories, image_files in os.walk(images_directory):
for image_file in image_files:
label_file = replace_file_extension(image_file, 'png', 'csv')
label_list.append(get_class_label(SELECTED_FEATURE, label_file))
- 我使用 image_dataset_from_directory 从带有自定义标签列表的目录创建数据集:
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
images_directory,
image_size=(32,32),
labels=label_list,
label_mode="int"
)
每次加载图像时,我都会以随机顺序分配给我的图像的标签?这个问题背后的原因是什么?如何确保以正确的顺序加载图像?
【问题讨论】:
-
不清楚你在做什么。能否展示图片文件列表和对应的 cvs 标签示例?
-
我为上下文的问题添加了一个示例。
-
想我明白你在做什么。请看下面我的回答
标签: python tensorflow keras google-colaboratory