使用sklearn拆分图像数据集后找不到训练测试输出怎么办
问题原因
你对sklearn.model_selection.train_test_split的功能存在误解:
- 这个函数仅用于对输入的列表、数组等序列数据做比例切分,返回的是切分后的两组序列对象,不会自动操作文件、也不会生成任何文件夹
- 你当前的代码仅向函数传入了路径字符串
".\dataset",相当于只对这个字符串做了无意义的切分,output_split变量只是内存中存储的两个包含该路径字符串的列表,根本不会生成本地的output_split文件夹。
正确实现步骤
你需要补充读取文件路径、创建目标文件夹、复制文件的逻辑,示例代码如下:
import os import shutil from sklearn.model_selection import train_test_split # 配置参数 dataset_path = "./dataset" train_ratio = 0.7 test_ratio = 0.3 # 1. 读取所有jpg文件路径 all_jpg_paths = [os.path.join(dataset_path, f) for f in os.listdir(dataset_path) if f.lower().endswith('.jpg')] # 2. 切分路径列表 train_paths, test_paths = train_test_split(all_jpg_paths, train_size=train_ratio, test_size=test_ratio, random_state=42) # 3. 创建训练集、测试集文件夹 os.makedirs("./train", exist_ok=True) os.makedirs("./test", exist_ok=True) # 4. 复制文件到对应文件夹 for path in train_paths: shutil.copy(path, os.path.join("./train", os.path.basename(path))) for path in test_paths: shutil.copy(path, os.path.join("./test", os.path.basename(path)))
运行后,训练集和测试集的图片会分别存储在脚本同级的train和test文件夹中。
内容的提问来源于stack exchange,提问作者seni
相关产品推荐
相关产品推荐

