在神经网络训练中,我们通常需要打乱数据的顺序来提高模型的泛化性,一般来说sklearn或者pytroch都有相应的API做这样的操作,但是如果我们要自己实现该如何操作呢?
虽然我们可以用for循环来产生有序数列
indices = [i for i in range(num_examples)]
但是for循环会徒增代码运行时间,这里可以用list
来进行代替。
例如我们现在有10个数据,现在对它进行编号
import random
num_examples = 10
indices = list(range(num_examples))
random.shuffle(indices)
print(indices)
可以看到输出结果已经被打乱了
[0, 7, 5, 1, 6, 4, 8, 2, 3, 9]