将jaffe划分为训练集,验证集和测试集的代码
时间: 2023-10-08 08:07:58 浏览: 56
criteo_small 数据集 已划分训练集、测试集和验证集
好的,以下是将jaffe数据集划分为训练集、验证集和测试集的Python代码:
```python
import os
import shutil
import random
# 定义数据集路径及划分比例
data_dir = "path/to/jaffe/dataset"
train_ratio = 0.7
valid_ratio = 0.2
test_ratio = 0.1
# 创建保存划分后数据的文件夹
train_dir = "path/to/train/dataset"
valid_dir = "path/to/valid/dataset"
test_dir = "path/to/test/dataset"
os.makedirs(train_dir, exist_ok=True)
os.makedirs(valid_dir, exist_ok=True)
os.makedirs(test_dir, exist_ok=True)
# 遍历jaffe数据集文件夹中的所有文件
file_list = os.listdir(data_dir)
file_list = [f for f in file_list if f.endswith(".tiff")]
random.shuffle(file_list)
# 划分数据集
train_num = int(len(file_list) * train_ratio)
valid_num = int(len(file_list) * valid_ratio)
test_num = int(len(file_list) * test_ratio)
train_files = file_list[:train_num]
valid_files = file_list[train_num:train_num+valid_num]
test_files = file_list[-test_num:]
# 将文件拷贝到对应的数据集文件夹中
for f in train_files:
src_path = os.path.join(data_dir, f)
dst_path = os.path.join(train_dir, f)
shutil.copyfile(src_path, dst_path)
for f in valid_files:
src_path = os.path.join(data_dir, f)
dst_path = os.path.join(valid_dir, f)
shutil.copyfile(src_path, dst_path)
for f in test_files:
src_path = os.path.join(data_dir, f)
dst_path = os.path.join(test_dir, f)
shutil.copyfile(src_path, dst_path)
```
上述代码将jaffe数据集文件夹中以“.tiff”为后缀的文件随机划分为训练集、验证集和测试集并分别保存到指定的文件夹中。
阅读全文