sun397数据集解压后的文件组织形式如下:

/mnt/disk1/gjh/data/SCENE/SUN397

  • a
    • abbey
    • airport_terminal
    • ...
  • b
    • basketball_court
      • outdoor
        • basketball_court_outdoor
      • indoor
    • beach
      • outdoor
    • ...
  • c
    • canyon
      • outdoor
    • castle
    • ...
  • d
    • ...
  • e
    • ...

其中,每个大类(a, b, c, d, e)下面是各个小类别的文件夹。对于部分细分为indoor和outdoor的小类别,会将其放到外面,并将目录名字改成类别名加上细分名的形式。

下面是将sun397数据集转化为imagenet格式的Python代码示例:

import os
import shutil

dataset_dir = '/mnt/disk1/gjh/data/SCENE/SUN397'
imagenet_dir = '/path/to/imagenet'

# 创建imagenet格式的目录结构
os.makedirs(imagenet_dir, exist_ok=True)
for i in range(1, 398):
    os.makedirs(os.path.join(imagenet_dir, f'n{i:03}'), exist_ok=True)

# 遍历sun397数据集,并将文件移动到对应的imagenet目录
for root, dirs, files in os.walk(dataset_dir):
    for file in files:
        # 获取类别名
        class_name = os.path.basename(root)
        # 获取细分名(如果有的话)
        sub_class_name = ''
        if len(dirs) > 0:
            sub_class_name = dirs[0]
        # 构建新的目录名
        new_class_name = f'{class_name}_{sub_class_name}'
        # 获取文件路径
        file_path = os.path.join(root, file)
        # 构建新的文件路径
        new_file_path = os.path.join(imagenet_dir, f'n{class_name:03}', new_class_name, file)
        # 创建新的目录
        os.makedirs(os.path.dirname(new_file_path), exist_ok=True)
        # 移动文件
        shutil.move(file_path, new_file_path)

请根据实际情况修改dataset_dir和imagenet_dir的路径。这段代码将遍历sun397数据集,根据类别名和细分名构建新的目录结构,并将文件移动到对应的位置。

sun397数据集解压后什么样的文件组织形式?会分abcde然后再分内部的吗?你可以写个python把他转化成imagenet格式吗?数据集目录是mntdisk1gjhdataSCENESUN397对于mntdisk1gjhdataSCENESUN397bbasketball_courtoutdoor部分细分为indoor和outdoor的也放到外面目录名字改成basketball_court_o

原文地址: https://www.cveoy.top/t/topic/jbio 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录