深度学习如何将已有的数据集中的图片样本保存到train和test文件夹中,每个文件夹中包含名字为0到9的十个类的文件,使用一个名为mas的大文件夹来储存名为train和test文件夹,显示完整代码
时间: 2024-10-10 22:04:55 浏览: 36
深度学习通常需要组织数据以便训练模型和评估性能。在Python中,我们可以使用`sklearn`库中的`train_test_split`函数,以及`os`模块来创建所需的文件结构。以下是一个简单的示例,展示如何将MNIST数据集(包含手写数字图片)的图片保存到`train`, `test`, 和 `mas` 文件夹中:
```python
import os
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
# 下载并加载MNIST数据集
mnist = fetch_openml('mnist_784')
# 数据预处理,例如归一化
X = mnist.data / 255.0
y = mnist.target
# 划分训练集和测试集,保留一部分数据用于验证
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建目录结构,如果不存在的话
if not os.path.exists('mas'):
os.makedirs('mas')
if not os.path.exists('mas/train'):
os.makedirs('mas/train')
if not os.path.exists('mas/test'):
os.makedirs('mas/test')
# 将数据保存到对应的文件夹
for i in range(10): # MNIST有10个类别
os.makedirs(os.path.join('mas', 'train', str(i)), exist_ok=True)
os.makedirs(os.path.join('mas', 'test', str(i)), exist_ok=True)
# 对于每个类别的训练数据
for img, label in zip(X_train[y_train == i], y_train[y_train == i]):
filename = f"{label}.png" # 假设你想要保存为PNG格式
img_path = os.path.join('mas', 'train', str(i), filename)
with open(img_path, 'wb') as f:
# 使用numpy数组转换为二进制并保存
f.write(img.reshape((28, 28)).tobytes())
# 类似的操作可以应用于测试集
print("Data split and saved to the desired structure.")
阅读全文