接续前篇VGG16猫狗二分类案例数据集处理建议下载数据集后需严格按照一下目录进行创建。1.规范目录结构必须按以下结构创建文件夹vgg16-cat-dog/├── train/ # 训练集│ ├── cat/ # 存放所有猫的图片│ └── dog/ # 存放所有狗的图片├── test/ # 测试集从train中划分20%│ ├── cat/│ └── dog/└── model/ # 保存训练好的模型代码会自动创建2.数据集划分将数据集划分为训练集和测试集。训练集文件夹命名为train,其中建立两个文件夹分别为cat和dog每个文件夹里存放相应类别的图片。测试集命名为test需手动或用代码划分比例为82。# 数据集划分代码保存为split_dataset.py放在项目根目录运行import osimport shutilimport random# 原始解压后的图片路径original_dir ./train_original # 你解压train.zip的路径# 目标路径train_dir ./traintest_dir ./test# 划分比例split_ratio 0.8# 创建文件夹os.makedirs(os.path.join(train_dir, cat), exist_okTrue)os.makedirs(os.path.join(train_dir, dog), exist_okTrue)os.makedirs(os.path.join(test_dir, cat), exist_okTrue)os.makedirs(os.path.join(test_dir, dog), exist_okTrue)# 筛选所有猫狗图片cat_images [f for f in os.listdir(original_dir) if f.startswith(cat)]dog_images [f for f in os.listdir(original_dir) if f.startswith(dog)]# 随机打乱random.shuffle(cat_images)random.shuffle(dog_images)# 划分训练集和测试集train_cat cat_images[:int(len(cat_images)*split_ratio)]test_cat cat_images[int(len(cat_images)*split_ratio):]train_dog dog_images[:int(len(dog_images)*split_ratio)]test_dog dog_images[int(len(dog_images)*split_ratio):]# 复制图片到对应文件夹for img in train_cat:shutil.copy(os.path.join(original_dir, img), os.path.join(train_dir, cat, img))for img in test_cat:shutil.copy(os.path.join(original_dir, img), os.path.join(test_dir, cat, img))for img in train_dog:shutil.copy(os.path.join(original_dir, img), os.path.join(train_dir, dog, img))for img in test_dog:shutil.copy(os.path.join(original_dir, img), os.path.join(test_dir, dog, img))print(f训练集猫{len(train_cat)}张狗{len(train_dog)}张)print(f测试集猫{len(test_cat)}张狗{len(test_dog)}张)