File size: 1,404 Bytes
08cde47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File: /home/lab/LAD/bitpointV3/pointcept_framework/scripts/generate_train_test_split.py

import os

def generate_split_files(data_root, train_ratio=0.8):
    """根据文件夹结构自动生成 train.txt 和 test.txt"""
    train_list = []
    test_list = []

    for class_name in os.listdir(data_root):
        class_dir = os.path.join(data_root, class_name)
        if not os.path.isdir(class_dir):
            continue

        # 获取该类别下所有 .txt 文件
        files = [f.replace('.txt', '') for f in os.listdir(class_dir) if f.endswith('.txt')]
        files.sort()  # 确保顺序一致

        # 按比例划分
        split_idx = int(len(files) * train_ratio)
        train_files = files[:split_idx]
        test_files = files[split_idx:]

        train_list.extend([f"{class_name}_{f}" for f in train_files])
        test_list.extend([f"{class_name}_{f}" for f in test_files])

    # 写入文件
    with open(os.path.join(data_root, "modelnet40_train.txt"), 'w') as f:
        f.write('\n'.join(train_list))

    with open(os.path.join(data_root, "modelnet40_test.txt"), 'w') as f:
        f.write('\n'.join(test_list))

    print(f"Generated {len(train_list)} training samples and {len(test_list)} testing samples.")

if __name__ == "__main__":
    DATA_ROOT = "/home/lab/LAD/bitpointV3/data/modelnet40_normal_resampled"
    generate_split_files(DATA_ROOT, train_ratio=0.8)