np.random.get_state()

state = np.random.get_state()

功能:获取随机生成器 np.random的状态
作用:常与np.random.set_state() 搭配使用。使随机生成器random保持相同的状态(state)
备注:具有相同state的随机生成器(random)的随机效果相同。随机生成器random,每执行一次,random的状态(state)就会变化一次,所以每次产生的随机数都不同,或随机操作的效果都不同。而当random的状态(state)不变时,多次执行random的同一操作具有相同的效果。

示例1:通过设置相同的state,使得两次生成的随机数相同

import numpy as np

state1 = np.random.get_state()
num1 = np.random.randint(100)
state2 = np.random.get_state()
num2 = np.random.randint(100)

np.random.set_state(state1)
num_1 = np.random.randint(100)
np.random.set_state(state2)
num_2 = np.random.randint(100)
num3 = np.random.randint(100)

print(num1, num_1)
print(num2, num_2)
print(num3)

输出结果:

20 20
55 55
66

分析:当导入numpy时,随机生成器 np.random会得到一个随机的状态,每次使用 np.random后,其状态都会改变,所以num1不等于num2,num_2不等于num3。而np.random.set_state()可强制设置随机生成器 np.random的状态为我们想要的状态,所以num1=num_1,num2=num_2。

示例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)

输出结果:

[9, 3, 1, 6, 2, 8, 5, 4, 7]
[9, 3, 1, 6, 2, 8, 5, 4, 7]

参考博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值