python-实用操作-同序shuffle-按相同顺序打乱两个数组

应用场景:

在网络训练过程中,将训练数据随机打乱能够过的更好的训练效果;

训练的images 和 labels 需要按照相同的顺序打乱,以保证image--label的对应关系;

这时候可以考虑numpy.random.get_state() , numpy.random.set_state() 这组函数;

两个函数说明如下:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.get_state.html#numpy.random.get_state

https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.set_state.html#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能够在保证对应关系不变的情况下,完成随机打乱。

猜你喜欢

转载自blog.csdn.net/qq_17753903/article/details/82181325
今日推荐