state = np.random.get_state()
两个用法:
1、与np.random()函数一起使用,使得多次生成的随机数相同,示例代码如下:
import numpy as np
state = np.random.get_state()
a = np.random.randint(10)
b = np.random.randint(10)
np.random.set_state(state)
c = np.random.randint(10)
print(a)
print(b)
print(c)
结果:
8
1
8
分析:a在state状态下获得一个随机数8,而b不在state状态下获取随机数,因此和a不同,而c又在state状态下获取随机数,所以与a的值相同
2、通过设置相同的state,使得random.shuffle()以相同的规律打乱两个列表,进而使得两个列表被打乱后,仍旧能维持两个列表间元素的一一对应关系。这一点在深度学习的标注数据集打乱中非常有用,对应的image_list与label_list在分别打乱后,仍能维持一一对应关系。
示例代码如下:
import numpy as np
images_list=[1,2,3,4,5,6,7,8,9]
labels_list=[1,2,3,4,5,6,7,8,9]
state = np.random.get_state()
np.random.shuffle(images_list)
np.random.set_state(state)
np.random.shuffle(labels_list)
print(images_list)
print(labels_list)
结果:
[8, 9, 7, 3, 1, 5, 4, 6, 2]
[8, 9, 7, 3, 1, 5, 4, 6, 2]
参考文章:https://blog.youkuaiyun.com/Strive_For_Future/article/details/81210907