使用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]即可。




微信公众号:AutoML机器学习
MARSGGBO原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com

2018-10-31



原文地址:https://www.cnblogs.com/marsggbo/p/9881443.html