python-3.x - 如何使用 ImageDataGenerator.flow_from_directory 将每个类/标签保存在其他子文件夹中?
问题描述
编辑:
设置:
Win 10 x64
Python 3.8.7
TF version 2.4.0
Keras version 2.4.3 #not needed I think but
我有图像的数据集,其结构如下:
dataset/
class1/
img1class1.jpg
...
class2/
img1class2.jpg
...
我正在使用带有以下选项的flow_from_directory
方法:tensorflow.keras.preprocessing.image.ImageDataGenerator
gen = imgen.flow_from_directory(
'dataset/',
target_size = (160, 120),
batch_size = 25,
class_mode = 'binary',
save_to_dir = 'new_dataset/',
save_prefix = 'new',
save_format = 'jpg'
)
但它将每个类中的每个图像都放在一个文件夹中new_dataset/
new_dataset/
new1.jpg #while that could be from class 1
new2.jpg # and that from class 2
...
是否可以“强制”flow_from_directory
使文件夹结构为:
new_dataset/
class1/
new1.jpg
...
class2/
new1.jpg
...
batch_size 是否也有可能只从一个特定的 img“创建”图像,我的意思是这img1class1.jpg
将是整批但有其他转换?我想做某事,比如从 1 张旧图像中提取 25 张新图像。
对不起我的工程师,我希望你能理解(:
解决方案
我找到了“解决方法”,所以这里是:
import os
labels = {}
for i, one_class in enumerate(os.listdir('dataset')):
gen = idg.flow_from_directory(
'dataset',
target_size = (160, 120),
batch_size = 25,
class_mode = 'binary',
classes = [one_class],
save_to_dir = f'dataset/{one_class}',
save_prefix = 'new_image',
save_format = 'jpg'
)
...
labels[one_class] = i #If u need them...
推荐阅读
- swift - 如何使用 swift 代码从 UITextView 中删除 \n\n?
- python - 30 分钟后删除记录 SQLite
- amazon-web-services - AWS CLI 在 s3 存储桶中搜索文件并复制到不同的文件夹
- css - 如何在 Elementor Pro Page Builder 上并排制作 2 个部分
- python - mock.MagicMock(spec=SomeClass) 和 mock.create_autospec(SomeClass) 有什么区别?
- r - 比较R中的2个字符串
- mysql - mysql 系统数据库是否应该更新其编码和排序规则?
- python - 高效地运行 Python 数据框中的行以构建交易信号
- django - 如何在不丢失表单选择多个(django)中选择的选项的情况下添加标题
- java - 用于尝试、捕获和最终用于 Scanner 和 BufferedReader 的正确方法