HMDB51数据集划分训练集测试集

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要进行行为识别C3D训练自己的数据集,首先需要进行以下步骤: 1. 准备数据集:根据您的需求,收集并准备合适的训练数据集。可以使用视频数据来进行训练,常见的视频行为识别数据库包括UCF101、HMDB-51、Something-Something V2、AVA v2.2、Kinetic-700等[2]。UCF101是分类任务,而AVA v2.2是检测任务。您可以选择合适的数据库或根据您的需求自行收集视频数据。 2. 数据预处理:对于C3D训练,需要对数据进行预处理。根据引用中提供的信息,UCF101数据集的视频文件已经按照类别存放于不同的文件夹下。您可以按照自己的数据集的组织方式进行调整。此外,还可以对视频进行剪辑、采样和调整分辨率等操作,以适应模型的输入要求。 3. 划分训练集测试集:根据您的需要,将数据集划分训练集测试集。可以使用已有的数据集划分方式,例如UCF101数据集的trainlist和testlist文件,或者根据您的需求自行划分。 4. 准备标签文件:为训练数据集准备标签文件,标明每个视频的类别或动作。可以参考已有的标签文件,例如UCF101数据集的classInd.txt文件。 5. 配置环境:确保您已经正确配置了C3D行为识别模型的训练环境。这包括安装必要的依赖库和框架,并配置好GPU加速等。 6. 训练模型:使用C3D模型对准备好的数据集进行训练。可以根据已有的代码或框架进行训练,例如使用C3D模型在PyTorch框架下进行训练。您可以参考引用中提供的相关项目下载和复现的信息。 总结起来,要进行行为识别C3D训练自己的数据集,您需要准备合适的数据集,进行数据预处理,划分训练集测试集,准备标签文件,配置环境,然后使用C3D模型对数据集进行训练。以上是一个基本的步骤,具体的实施细节还需根据您的具体需求和环境进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值