我正在处理一个多标签分类问题,并面临一些内存问题,因此我将使用Keras image_dataset_from_directory
方法作为批处理加载所有图像。如何在此方法上应用多标签技术?
我有这些文件夹:
['Tomato_BacterialSpot', 'Tomato_EarlyBlight', 'Tomato_Healthy', 'Tomato_LateBlight']
我使用下面的代码生成类名。
这里是多标签的示例代码教程,但是他们没有使用image_dataset_from_directory
技术。
label = imagePath.split(os.path.sep)[-2].split("_")
我得到了以下结果,但我不知道如何使用image_dataset_from_directory
方法来应用多标签?
发布于 2021-01-04 02:45:48
你实际上不需要应用类标签,这些并不重要。Keras会自动为您检测到这些信息。它通过研究数据所在的目录来做到这一点。请确保指向所有数据所在的父文件夹。您的数据应采用以下格式:
my_data/
...BacterialSpot/
...EarlyBlight/
...Healthy/
...LateBlight/
...Tomato/
您需要指向的数据源是my_data。以下是一个实现:
train = tf.keras.preprocessing.image_dataset_from_directory(
'my_data',
validation_split=0.2,
subset="training",
image_size=(128, 128),
batch_size=128)
val = tf.keras.preprocessing.image_dataset_from_directory(
'my_data',
validation_split=0.2,
subset="validation",
image_size=(128, 128),
batch_size=128)
当你运行它时:
Found 3647 files belonging to 1 classes.
Using 2918 files for training.
Found 3647 files belonging to 1 classes.
Using 729 files for validation.
Keras为您自动检测到了这些类。在我的例子中,我只使用了一个类,所以您应该能够看到与您的5个类相关的内容。参见Google的一个示例实现:https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/images/classification.ipynb#scrollTo=iscU3UoVJBXj
https://datascience.stackexchange.com/questions/87469
复制相似问题