我想按照label分文件夹进行保存该如何做
时间: 2023-08-11 08:03:15 浏览: 84
如果要按照图像的 label 分文件夹进行保存,可以在循环中根据图像的 label 创建不同的文件夹,并将对应的图像保存在相应的文件夹中。修改完整代码如下:
```python
import os
import struct
import numpy as np
import matplotlib.pyplot as plt
def read_idx(filename):
with open(filename, 'rb') as f:
zero, data_type, dims = struct.unpack('>HBB', f.read(4))
shape = tuple(struct.unpack('>I', f.read(4))[0] for d in range(dims))
return np.frombuffer(f.read(), dtype=np.uint8).reshape(shape)
data = read_idx('t10k-images-idx3-ubyte')
labels = np.loadtxt('t10k-labels-idx1-ubyte', dtype=np.uint8)
for i in range(len(data)):
label = labels[i]
folder = f'label_{label}'
if not os.path.exists(folder):
os.makedirs(folder)
plt.imshow(data[i], cmap='gray')
plt.savefig(os.path.join(folder, f'image_{i}.png'))
```
这里使用了 np.loadtxt 函数来读取 MNIST 数据集中的 t10k-labels-idx1-ubyte 文件,获取每个图像的 label。然后在循环中根据 label 创建对应的文件夹,并将对应的图像保存在相应的文件夹中。运行后,会生成多个文件夹,每个文件夹名为 label_x,其中 x 表示 label 的值,文件夹中包含了对应的图像文件。
阅读全文