首页 > 系统相关 >python中numpy.random.seed设置随机种子是否影响子进程

python中numpy.random.seed设置随机种子是否影响子进程

时间:2023-09-11 14:24:05浏览次数:36  
标签:__ NN python self random print seed np

给出代码:

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的状态是不会影响子进程的。

 

 

========================================================

标签:__,NN,python,self,random,print,seed,np
From: https://www.cnblogs.com/devilmaycry812839668/p/17693440.html

相关文章

  • Python-day6
    1、条件表达式num1=int(input('num1='))num2=int(input('num2='))print(str(num1)+'>='+str(num2)ifnum1>=num2elsestr(num1)+'<='+str(num2))2、pass语句s=input('您是会员吗:Y/N')ifs=='Y':passelse:......
  • Python - python环境搭建
    Pycharm下载安装详细教程目录1、Pycharm简介2、Pycharm下载3、环境变量的配置4、Pycharm的使用1、Pycharm简介PyCharm是一种PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管......
  • 深入了解Python协程与异步编程
    Python是一门强大的编程语言,提供了多种方式来处理并发和异步编程。在本博客中,我们将深入探讨Python中的协程(coroutines)和异步编程的重要性。什么是协程?协程是一种轻量级的线程,允许在一个线程中执行多个任务,而无需线程切换的开销。在Python中,协程通过asyncio库来实现。importasy......
  • Python - PyQt5环境搭建
    前期准备:PyQt5以及其他组件的下载与安装    在python的图形界面开发过程中,我们需要三个组件,分别是:PyQt5、pyqt5-tools、PyQt5Designer,我们直接在命令行输入下面的代码进行安装即可:pipinstallPyQt5pipinstallpyqt5-toolspipinstallPyQt5Designer环境的设置:......
  • python import
    python的import语句1、import作用import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量、函数或者类,但实现的区别很大。C/C++中如果a.cppinclude了b.h那么b.h这个文件就原样加到a.cpp文件中去了,这样在b.h中的变量、函数、类就在a.cpp文件中声明了,所以......
  • Python项目打包与部署(一):模块与包的概念与关系
    当前各类Python教程鲜有涉及Python打包与部署技术,或者讲述过于表面化、片面化。本人尝试从原理开始,结合实例,并给出标准操作步骤建议,为python编程爱好者提供一份较为详实的Python项目打包与部署参考教程。本教程其它章节Python项目打包与部署(二):init.py的作用及内容Python......
  • python getopt
    getopt在写脚本程序的时候需要添加一些额外的参数来实现脚本的附加功能或者增强功能,通常的做法是同sys.argv[i]直接来获取参数的值,但是这个比较局限,要求参数的输入一定要按照顺序。fileName=sys.argv[1];regName=sys.argv[2];如果在命令行输入的第一个参数不是文件的名......
  • Python从零到一构建项目​
    Python从零到一构建项目随着互联网的发展,网络上的信息量急剧增长,而获取、整理和分析这些信息对于很多人来说是一项艰巨的任务。而Python作为一种功能强大的编程语言,它的爬虫能力使得我们能够自动化地从网页中获取数据,大大提高了效率。本文将分享如何从零到一构建一个简单的网络爬虫......
  • python 集合特点&建立集合的三种方式
    一、9.10晚上python集合之特点和建立集合的三种方式_思维导图 2、IDLE执行记录   ......
  • python实现猜数字小游戏​
    功能需求尝试利用Python实现一个猜数字小游戏,要求给定用户1—100之间的任意一个数字,用户有十次机会,每次输入一次数字都会减少一次机会。如果用户在机会用完之前猜对数字,或者是在机会用完时也没有猜对数字那么这场游戏结束。功能分析1:引入random模块,使用random.randin()随机生成1—......