La dirección de descarga del conjunto de datos es
El paquete de imágenes descargado contiene imágenes de perros y gatos, pero el método de asignación de nombres lleva el nombre de perros y gatos, por lo que podemos clasificarlos rápidamente y utilizar el 90 % de ellos como conjunto de entrenamiento y el resto como conjunto de prueba.
trabajo de preparación inicial:
- descargar conjunto de datos
- Crear nuevas carpetas de entrenamiento y prueba
- En los archivos de entrenamiento y prueba, cree carpetas para gatos y perros
- ejecutar código
código:
import shutil
import torch
import torch.nn as nn
import torchvision
import os
# 数据分类处理
## 提取文件夹内的名字
data_file = os.listdir('./data/train')
## 索引猫和狗的图片名字
dog_file = list(filter(lambda x: x[:3] == 'dog', data_file))
cat_file = list(filter(lambda x: x[:3] == 'cat', data_file))
## 移动图片
root = './data/train/'
for i in range(len(dog_file)):
pic_path = os.path.join(root, dog_file[i + 1])
# print(dog_file[i+1])
# print('*******************************')
# print(pic_path)
if i < len(dog_file)*0.9 :
obj_path = './data/train/dog/' + dog_file[i + 1]
else:
obj_path = './data/test/dog/' + dog_file[i + 1]
shutil.move(pic_path, obj_path)
for i in range(len(cat_file)):
pic_path = os.path.join(root, cat_file[i + 1])
if i < len(cat_file)*0.9:
obj_path = './data/train/cat/' + cat_file[i + 1]
else:
obj_path = './data/test/cat/' + cat_file[i + 1]
shutil.move(pic_path, obj_path)