numpy: np.random.get_state()

本文介绍如何使用numpy的get_state和set_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

state = np.random.get_state()
chance = np.random.randint(100)
np.random.set_state(state)
chance2 = np.random.randint(100)

print(chance,chance2)

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值