数据集打乱的话,那图片对应的类别会乱吗
时间: 2024-03-17 13:39:53 浏览: 104
数据集打乱,提高模型的泛化能力
在对数据集进行打乱操作时,只是打乱了数据集中样本的顺序,而并没有改变每个样本对应的标签或类别。因此,不会影响图片对应的类别。
在实际操作中,我们通常会将图片和对应的标签或类别存储在两个不同的数组或列表中,然后对这两个数组或列表同时进行打乱操作,以确保每个图片和其对应的标签或类别仍然是匹配的。具体来说,我们可以使用 numpy 库中的 random 模块来对多个数组进行同时打乱操作,例如:
```python
import numpy as np
# 读取数据集
images = [...] # 图片数组
labels = [...] # 标签数组
# 打乱数据集
state = np.random.get_state()
np.random.shuffle(images)
np.random.set_state(state)
np.random.shuffle(labels)
# 划分数据集
train_size = int(0.6 * len(images))
val_size = int(0.2 * len(images))
train_images, train_labels = images[:train_size], labels[:train_size]
val_images, val_labels = images[train_size:train_size+val_size], labels[train_size:train_size+val_size]
test_images, test_labels = images[train_size+val_size:], labels[train_size+val_size:]
```
在上面的代码中,我们使用 numpy.random.get_state 和 numpy.random.set_state 来保存和恢复随机数生成器的状态,以确保多个数组被同时打乱。在打乱完成后,我们可以将打乱后的图片和标签分别存储在不同的数组中,然后进行数据集的划分。
阅读全文