import os import shutil import random def split_dataset(dataset_path, train_ratio=0.8, val_ratio=0.1, test_ratio=0.1): class_folders = sorted(os.listdir(dataset_path)) for class_folder in class_folders: class_path = os.path.join(dataset_path, class_folder) video_folders = sorted(os.listdir(class_path)) num_videos = len(video_folders) num_train = int(num_videos * train_ratio) num_val = int(num_videos * val_ratio) num_test = num_videos - num_train - num_val random.shuffle(video_folders) train_videos = video_folders[:num_train] val_videos = video_folders[num_train:num_train + num_val] test_videos = video_folders[num_train + num_val:] for video_folder in train_videos: src_path = os.path.join(class_path, video_folder) dest_path = os.path.join("train", class_folder, video_folder) shutil.move(src_path, dest_path) for video_folder in val_videos: src_path = os.path.join(class_path, video_folder) dest_path = os.path.join("val", class_folder, video_folder) shutil.move(src_path, dest_path) for video_folder in test_videos: src_path = os.path.join(class_path, video_folder) dest_path = os.path.join("test", class_folder, video_folder) shutil.move(src_path, dest_path) if __name__ == "__main__": dataset_path = "/home/db/下载/HMDB51" train_ratio = 0.8 val_ratio = 0.1 test_ratio = 0.1 # Create train, val, and test directories os.makedirs("train", exist_ok=True) os.makedirs("val", exist_ok=True) os.makedirs("test", exist_ok=True) split_dataset(dataset_path, train_ratio, val_ratio, test_ratio)
HMDB51数据集划分训练集测试集
最新推荐文章于 2024-07-12 16:55:56 发布