Python中的random

random.seed(seed: int)

设置随机数种子

np.random.seed(seed: int)

设置numpy随机数种子

torch.random.seed(seed: int)

设置torch cpu随机数种子

torch.cuda.manual_seed(seed: int)

设置torch cuda随机数种子

随机数种子的作用

使用随机数种子,系统每次生成的随机数相同
不使用随机数种子,系统每次会采用当前时间值作为种子,每次生成的随机数不同
需要注意的是,每次生成随机数都需要先设置一次随机数种子,才能使得随机数相同

random.seed

# random
# 未设置随机数种子
print(random.random())
# seed=1
random.seed(1)
print(random.random())
# seed=2
random.seed(2)
print(random.random())
# seed=1
random.seed(1)
print(random.random())
# 未设置随机数种子(seed只能起1次作用)
print(random.random())

输出如下:

# 未设置随机数种子
0.08078724468151599
# seed=1
0.13436424411240122
# seed=2
0.9560342718892494
# seed=1
0.13436424411240122
# 未设置随机数种子(seed只能起1次作用)
0.8474337369372327

np.random.seed

# numpy
# 未设置随机数种子
print(np.random.randn(3, 3))
# seed=1
np.random.seed(1)
print(np.random.randn(3, 3))
# seed=2
np.random.seed(2)
print(np.random.randn(3, 3))
# seed=1
np.random.seed(1)
print(np.random.randn(3, 3))
# 未设置随机数种子(seed只能起1次作用)
print(np.random.randn(3, 3))

输出如下:

# 未设置随机数种子
[[-0.22320938  1.10616349 -0.27628029][-0.21960422  1.86143596  0.7177178 ][ 0.99048517 -1.59780318 -1.6579825 ]]
# seed=1
[[ 1.62434536 -0.61175641 -0.52817175][-1.07296862  0.86540763 -2.3015387 ][ 1.74481176 -0.7612069   0.3190391 ]]
# seed=2
[[-0.41675785 -0.05626683 -2.1361961 ][ 1.64027081 -1.79343559 -0.84174737][ 0.50288142 -1.24528809 -1.05795222]]
# seed=1
[[ 1.62434536 -0.61175641 -0.52817175][-1.07296862  0.86540763 -2.3015387 ][ 1.74481176 -0.7612069   0.3190391 ]]
# 未设置随机数种子(seed只能起1次作用)
[[-0.24937038  1.46210794 -2.06014071][-0.3224172  -0.38405435  1.13376944][-1.09989127 -0.17242821 -0.87785842]]

torch.random.seed

# torch cpu
# 未设置随机数种子
print(torch.randn(3, 3))
# seed=1
torch.random.manual_seed(1)
print(torch.randn(3, 3))
# seed=2
torch.random.manual_seed(2)
print(torch.randn(3, 3))
# seed=1
torch.random.manual_seed(1)
print(torch.randn(3, 3))
# 未设置随机数种子(seed只能起1次作用)
print(torch.randn(3, 3))

输出如下:

# 未设置随机数种子
tensor([[-0.3011, -2.0912,  1.6571],[ 0.1610, -0.2145,  0.9794],[-0.3324,  0.0087,  0.3562]])
# seed=1
tensor([[ 0.6614,  0.2669,  0.0617],[ 0.6213, -0.4519, -0.1661],[-1.5228,  0.3817, -1.0276]])
# seed=2
tensor([[ 0.3923, -0.2236, -0.3195],[-1.2050,  1.0445, -0.6332],[ 0.5731,  0.5409, -0.3919]])
# seed=1
tensor([[ 0.6614,  0.2669,  0.0617],[ 0.6213, -0.4519, -0.1661],[-1.5228,  0.3817, -1.0276]])
# 未设置随机数种子(seed只能起1次作用)
tensor([[-0.5631, -0.8923, -0.0583],[-0.1955, -0.9656,  0.4224],[ 0.2673, -0.4212, -0.5107]])

torch.cuda.manual_seed

# torch cuda
# 未设置随机数种子
print(torch.cuda.FloatTensor(3, 3).uniform_())
# seed=1
torch.cuda.manual_seed(1)
print(torch.cuda.FloatTensor(3, 3).uniform_())
# seed=2
torch.cuda.manual_seed(2)
print(torch.cuda.FloatTensor(3, 3).uniform_())
# seed=1
torch.cuda.manual_seed(1)
print(torch.cuda.FloatTensor(3, 3).uniform_())
# 未设置随机数种子(seed只能起1次作用)
print(torch.cuda.FloatTensor(3, 3).uniform_())

输出如下:

# 未设置随机数种子
tensor([[0.8903, 0.0275, 0.9031],[0.5386, 0.7312, 0.9047],[0.3370, 0.0347, 0.6334]], device='cuda:0')
# seed=1
tensor([[0.8903, 0.0275, 0.9031],[0.5386, 0.7312, 0.9047],[0.3370, 0.0347, 0.6334]], device='cuda:0')
# seed=2
tensor([[0.4254, 0.8305, 0.3370],[0.6842, 0.5668, 0.6650],[0.0425, 0.8868, 0.9593]], device='cuda:0')
# seed=1
tensor([[0.8903, 0.0275, 0.9031],[0.5386, 0.7312, 0.9047],[0.3370, 0.0347, 0.6334]], device='cuda:0')
# 未设置随机数种子(seed只能起1次作用)
tensor([[0.6720, 0.2317, 0.7176],[0.3432, 0.9057, 0.6461],[0.0826, 0.5070, 0.5691]], device='cuda:0')

此外,多次运行后,相同随机数种子产生的随机数仍然是相同的。

random.seed(seed)、np.random.seed(seed)、torch.manual_seed(seed)作用相关推荐

  1. torch.manual_seed(seed)

    torch.manual_seed(seed) – 官方文档说明:设置 (CPU) 生成随机数的种子,并返回一个torch.Generator对象. 设置种子的用意是一旦固定种子,后面依次生成的随机数 ...

  2. np.random.randint 与 np.random.rand区别 前者返回为参数指定的范围区间的一个整数后者返回的为一个概率

    np.random.randint  与 np.random.rand区别 前者返回为参数指定的范围区间的一个整数后者返回的为一个概率 import numpy as np num_lstm = np ...

  3. np.random.RandomState、np.random.rand、np.random.random、np.random_sample

    0. np.random.RandomState 计算机实现的随机数生成通常为伪随机数生成器,为了使得具备随机性的代码最终的结果可复现,需要设置相同的种子值: np.random.randn(-) ⇒ ...

  4. 如何区分np.random.normal()、np.random.randn()、np.random.randint()、np.random.random()、np.random.choice()

    本期我们来对np.random中常用的函数进行区分 np.random.normal(loc,scale,size) 参数说明: loc:正太分布的均值 scale:正太分布的标准差 size:设定数 ...

  5. pythonrandom rand_Python np.random.rand()和np.random.randn()

    原博文 2020-04-01 12:40 − np.random.rand()返回一个或一组服从"0~1"均匀分布的随机样本值.随机样本取值范围是[0,1),不包括1. np.ra ...

  6. 详述numpy中的np.random.rand()、np.random.randn()、np.random.randint()、np.random.uniform()函数的用法

    目录 (一)np.random.rand() (二)np.random.randn() (三)np.random.randint(low,high,size,dtype) (四)np.random.u ...

  7. torch.manual_seed()及其作用

    含义 torch.manual_seed(parameter) #为CPU设置种子用于生成随机数,以使得结果是确定的 torch.cuda.manual_seed(parameter)#为当前GPU设 ...

  8. np.random.seed(), torch.manual_seed(args.seed)

    np.random.seed() np.random.seed()函数用于生成指定随机数. seed()被设置了之后,np,random.random()可以按顺序产生一组固定的数组; 如果使用相同的 ...

  9. np.random.seed用法

    参考https://stackoverflow.com/questions/21494489/what-does-numpy-random-seed0-do random.seed是随机种子生成器,当 ...

最新文章

  1. 裴礼文数学分析中的典型问题与方法第4章一元函数积分学练习
  2. sysbench 项目测试过程与分析
  3. mysql报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题
  4. initWithCoder: 与initWithFrame:
  5. C# WinForm程序退出的方法比较
  6. 通信模式与网络协议之间的对应关系
  7. 任正非:未来是云时代,华为也要转向云战略
  8. usb驱动自安装程序的制作
  9. 图片随意移动,可以拖动图片计算
  10. Flutter代码锦囊---淘口令复制弹窗
  11. SQL-55 分页查询employees表,每5行一页,返回第2页的数据
  12. 网页录音之麦克风权限问题
  13. AcrelEMS-IDC数据中心综合能效管理解决方案
  14. chrome pdf 打印边距问题处理
  15. 计算机电路中bga是什么,什么是BGA BGA的结构和性能
  16. Android【语音合成TTS】
  17. F 小名的回答 (奇偶) 湖南师范大学2018年大学生程序设计竞赛新生赛
  18. Win10如何关闭win11自动更新?
  19. 彩色图像增强opencv
  20. w7的计算机的工具在哪里,win7旗舰版内置的便签工具在哪?工具使用图解

热门文章

  1. 宇视网络视频录像机添加摄像机常规方法
  2. 持续迭代、永久更新的WIN NFT HORSE,具有无穷无尽的生命力
  3. 基于OAI-PMH的元数据搜索引擎的设计与实现
  4. Linux下随机生成密码的命令总结
  5. HTML简易时钟教程,html5 svg简单的模拟时钟特效-HTML5动画
  6. 基于Python Django Mysql 开发的宠物用品商城
  7. 大龄程序员的出路在哪里!40岁50岁你还有精力每天抱着电脑写程序吗?
  8. JavaSE入门学习38:Java集合框架之迭代器
  9. 计算机配件声卡,DIY组装电脑到底需要哪些配件 攒机网卡声卡之类的要买吗
  10. python dataframe dropna_在Python中使用熊猫在两个DataFrame之间进行值...