应用场景:
在网络训练过程中,将训练数据随机打乱能够过的更好的训练效果;
训练的images 和 labels 需要按照相同的顺序打乱,以保证image--label的对应关系;
这时候可以考虑numpy.random.get_state() , numpy.random.set_state() 这组函数;
两个函数说明如下:
示例:
import numpy as np
a = np.arange(0,10,1)
b = np.arange(10,20,1)
print(a,b)
#result:[0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19]
state = np.random.get_state()
np.random.shuffle(a)
print(a)
#result:[6 4 5 3 7 2 0 1 8 9]
np.random.set_state(state)
np.random.shuffle(b)
print(b)
#result:[16 14 15 13 17 12 10 11 18 19]
通过get_state()保存状态,set_state()重新载入状态,可以使得 a,b能够在保证对应关系不变的情况下,完成随机打乱。