np.random.get_state()

本文介绍如何使用np.random.get_state()和np.random.set_state()确保随机数生成的一致性,这对于深度学习标注数据集的处理至关重要。通过实例展示了如何使随机数在多次运行中保持相同,以及如何保持两个列表在随机打乱后的元素对应关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值