数据集抽样脚本
这个是专用于我们雷达领域的,目的是从大数据集生成一个较小的数据集,用于快速调试。
用法
从原始里面抽样SAMPLE_SIZE个数据,其中是从train,val内抽样,以及test下的每个子文件夹内抽样。保持结构不变
#!/bin/bash
# 获取抽样数量
SAMPLE_SIZE=33
# 定义源文件夹和目标文件夹
SOURCE_DIR="./DDMA_data_24.11.20"
TARGET_DIR="./DDMA_data_24.11.20_small"
echo "正在创建子数据集...我们没有进度条,你猜猜还得多久?"
###########################################################################
# 创建目标文件夹
mkdir -p "$TARGET_DIR"
# 处理 train 文件夹
mkdir -p "$TARGET_DIR/train"
ls "$SOURCE_DIR/train" | sort | head -n "$SAMPLE_SIZE" | xargs -I {} cp "$SOURCE_DIR/train/{}" "$TARGET_DIR/train/"
# 处理 val 文件夹
mkdir -p "$TARGET_DIR/val"
ls "$SOURCE_DIR/val" | sort | head -n "$SAMPLE_SIZE" | xargs -I {} cp "$SOURCE_DIR/val/{}" "$TARGET_DIR/val/"
# 处理 test 文件夹
mkdir -p "$TARGET_DIR/test"
for subdir in "$SOURCE_DIR/test"/*; do
if [ -d "$subdir" ]; then
subdir_name=$(basename "$subdir")
mkdir -p "$TARGET_DIR/test/$subdir_name"
ls "$subdir" | sort | head -n "$SAMPLE_SIZE" | xargs -I {} cp "$subdir/{}" "$TARGET_DIR/test/$subdir_name/"
fi
done
echo "抽样完成!子数据集已存储在 $TARGET_DIR 中,每个文件夹抽样了 $SAMPLE_SIZE 个文件。"
