python中numpy.random.seed设置随机种子是否影响子进程
给出代码:
from multiprocessing import Process import numpy as np class NN(Process): def __init__(self, id): super(NN, self).__init__() self.id = id def run(self): super(NN, self).run() print(np.random.random(5)) print(np.random.random(5)) np.random.seed(1111) print(np.random.random(5)) print(np.random.random(5)) print("="*30) np.random.seed(1111) ps = [NN(i) for i in range(1)] for p in ps: p.start() for p in ps: p.join()
运行结果:
========================================
给出对比代码:
from multiprocessing import Process import numpy as np import time class NN(Process): def __init__(self, id): super(NN, self).__init__() self.id = id def run(self): super(NN, self).run() time.sleep(10) print(np.random.random(5)) np.random.seed(1111) print(np.random.random(5)) ps = [NN(i) for i in range(1)] for p in ps: p.start() np.random.seed(1111) for p in ps: p.join()
运行结果:
-------------------------------------------------------------------
PS:
可以看到,在python生成多进程时会copy父进程中的numpy.random的状态,这其中也包括随机种子的状态; 如果子进程生成完成后,那么父进程中的numpy.random的状态是不会影响子进程的。
========================================================
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
标签:
杂谈
posted on 2023-09-11 14:14 Angry_Panda 阅读(72) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2021-09-11 openAI的仿真环境Gym Retro的Python API接口