1. 解决方法
可使用PaddleX
框架自带的工具,对数据集进行随机划分,首先要将数据集按照如下格式整理:
MyDataset/ # 实例分割数据集根目录
|--JPEGImages/ # 原图文件所在目录
| |--1.jpg
| |--2.jpg
| |--...
| |--...
|
|--annotations.json # 标注文件所在目录
在数据集按照上面格式组织后,使用如下命令即可快速完成数据集随机划分,其中val_value
表示验证集的比例,test_value
表示测试集的比例(可以为0),剩余的比例用于训练集。
paddlex --split_dataset --format COCO --dataset_dir D:/MyDataset --val_value 0.2 --test_value 0.1
使上面的命令即可将数据划分为70%训练集,20%验证集和10%的测试集, 同时会在D:\MyDataset
下生成train.json
, val.json
, test.json
,分别存储训练样本列表,验证样本列表,测试样本列表
同时该工具也支持划分 VOC 格式的数据集, 使用命令如下:
paddlex --split_dataset --format VOC --dataset_dir D:\MyDataset --val_value 0.2 --test_value 0.1
2. 遇到的问题
2.1 Paddle 安装
先使用命令安装 paddlepaddle
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
再使用命令安装 paddlex
pip install paddlex -i https://mirror.baidu.com/pypi/simple
验证 Paddle 是否安装好:
python -c "import paddle;paddle.utils.run_check()"
看到下图说明安装好了
2.2 运行划分数据集命令时报错: ‘ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88’
原因: numpy 版本不对, 我这里使用的 numpy 版本是 1.19.0
解决方法: 升级numpy 版本到 2.20, 使用如下命令:
pip install numpy==1.20.0
问题解决, 不再报错