生成一个根据老师提供的手机相册分类数据集,制作成训练图像数据集、测试图像数据集、训练标签数据集和测试标签数据集。将四部分分别保存成numpy文件的代码。
时间: 2024-05-02 19:17:36 浏览: 81
下面是一个制作手机相册分类数据集的代码示例,包括将训练图像数据集、测试图像数据集、训练标签数据集和测试标签数据集保存成numpy文件的代码:
```python
import numpy as np
import os
import cv2
from sklearn.model_selection import train_test_split
# 定义数据集路径和类别
data_path = 'path/to/dataset/'
categories = ['cat', 'dog', 'bird', 'flower']
# 初始化数据和标签列表
data = []
labels = []
# 循环遍历类别文件夹,读取图片并进行处理
for category in categories:
path = os.path.join(data_path, category)
class_num = categories.index(category)
for img in os.listdir(path):
try:
img_array = cv2.imread(os.path.join(path, img))
new_array = cv2.resize(img_array, (224, 224))
data.append(new_array)
labels.append(class_num)
except Exception as e:
pass
# 将数据和标签转换为numpy数组
data = np.array(data)
labels = np.array(labels)
# 将数据和标签分为训练集和测试集
train_data, test_data, train_labels, test_labels = train_test_split(data, labels, test_size=0.2, random_state=42)
# 保存为numpy文件
np.save('train_data.npy', train_data)
np.save('test_data.npy', test_data)
np.save('train_labels.npy', train_labels)
np.save('test_labels.npy', test_labels)
```
在上面的代码中,我们使用了OpenCV库来读取和调整图像大小,使用了sklearn库中的train_test_split函数来将数据和标签分为训练集和测试集,最后使用numpy库中的np.save函数将数据和标签保存为numpy文件。您需要将代码中的路径和类别替换为您自己的数据集路径和类别。
阅读全文