使用Numpy将数据集中的data和target同时shuffle
假设现在有图像数据imgs
和对应标签targets
。数据维度分别如下
imgs.shape = (num, channel, width, height)
targets.shape = (num, class)
因为通常我们需要将数据打散,这样的好处是可以让模型训练更具鲁棒性,那么如何同时打散data和target,而且还需要保持对应顺序不变呢?方法如下
# 得到打乱后的index
from random import shuffle
index = [i for i in range(len(imgs))]
shuffle(index)
imgs = imgs[index, :, :, :]
targets = targets[index, :]
要注意的是数据的维度要保持正确,也就是上面的:
数量要正确,假如在mnist数据集上,target的维度是(num,)维度,所以此时应该写成targets = targets[index]
即可。