【发布时间】:2021-08-03 16:20:11
【问题描述】:
我想设计一个 CNN 模型来对包含 200,000 种不同字体和字母的图像数据集进行分类。图像位于 8 个不同的文件夹中,文件夹名称为 1 类到 8 类。我想对这个文件夹中的图像进行分类,以了解图像显示的字母。如果没有任何显示字母的文件,我怎么能做到这一点?
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
directory, label = None,
validation_split=0.2,
subset="training",
seed=123,
image_size=(32, 32),
batch_size=batch_size
)
我使用此代码将我的数据集用于训练和验证。 我的目录是这样的
main_directory/
...class_a/
......a_image_1.jpg
.
.
......a_image_1000.jpg
......b_image_1.jpg
.
......b_image_1000.jpg
.
.
.
......y_image_1.jpg
.
.
......y_image_1000.jpg
......z_image_1.jpg
.
.
......z_image_1000.jpg
...class_b/
......a_image_1000.jpg
.
.
......a_image_2000.jpg
......b_image_1000.jpg
.
......b_image_2000.jpg
.
.
.
......y_image_1000.jpg
.
.
......y_image_2000.jpg
......z_image_1000.jpg
.
.
......z_image_2000.jpg
这不会让我看到带有train_ds的标签
【问题讨论】:
-
这里 keras 使用基于目录隔离的标签,希望你已经看到示例 FYI machinelearningmastery.com/…
-
如果您使用 train_ds.classes,您将能够看到我猜的标签,您检查了吗?
-
@Nagakiran 的主要问题是文件夹的名称不是标签。每个图像的标签是图像名称。所以 train_ds.classes 找不到那些标签
-
请用os的手动程序,shutil来分离基于名称标签的图像,keras不会一次加载整个训练数据,所以只有文件夹结构,它不能有基于命名的分解。跨度>
-
@Nagakiran 谢谢你的帮助
标签: python tensorflow keras deep-learning conv-neural-network