Python 板


LINE

Code 先奉上: from multiprocessing import Pool import numpy as np Nj=2 Dataold=np.zeros((5,Nj)) def MT(i): DataMT=np.zeros((Nj)) for j in range(0,Nj): DataMT[j]=Dataold[i,j]+i return DataMT if __name__=='__main__': for k in range(0,2): pool = Pool(processes=6) list_start_vals = range(0, 5) array_3D = np.array(pool.map(MT, list_start_vals)) Dataold = array_3D print(array_3D[4,0]) pool.close() output: 4.0 4.0 问题: 原本预计第二个4.0应该要是8.0,因为认为Dataold = array_3D会把原本定 义的Dataold取代掉,并带入第二圈的k回圈,但事实上并没有。 解: 没事了... 我改在linux上跑就没问题 而windows会跑失败,原因大概是spawn和folk的设定差异 (此文不删,留给有类似问题的人参考) 描述: 1. 第一个4.0是来自於 k=0, 第二个是 k=1 2. 其中一个解法: 把pool.map 改成pool.starmap,并且把Dataold当作参数 但实际要跑的code很巨大,Dataold会是一个巨大的array 因此这样写code会跑很慢很没效率 3. pool.map 会给一个 1*2 的 array 而np.array(pool.map(....))会把上面的array排成 5*2 array 感谢! 我只有微薄的P币能够报恩,谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 23.242.118.130 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1628222390.A.580.html ※ 编辑: Draic5566 (23.242.118.130 美国), 08/06/2021 12:05:46 ※ 编辑: Draic5566 (23.242.118.130 美国), 08/06/2021 12:21:23
1F:推 aassdd926: 不知道为何如此,但我会试试看 pass 1D array 进去, 08/06 15:52
2F:→ aassdd926: 不要让mulitiprocessing 的function access a global 08/06 15:52
3F:→ aassdd926: variable,然後再把吐出来的1D array叠起来,因为以我 08/06 15:52
4F:→ aassdd926: 的了解,不同的process memory space不同 08/06 15:52
5F:→ aassdd926: 我试了一下,因为你有返回DataMT变数,然後重新assign 08/06 16:26
6F:→ aassdd926: 给Dataold,所以才有被更新,如果直接在MT里面变更Dat 08/06 16:26
7F:→ aassdd926: aold的element,在主process 是不会出现变动(因为空 08/06 16:26
8F:→ aassdd926: 间不同) 08/06 16:26
9F:→ aassdd926: Btw multiprocessing module 有一些class(ex. Array) 08/06 16:30
10F:→ aassdd926: 可以让不同process使用同个matrix,以你的使用情境应 08/06 16:30
11F:→ aassdd926: 该蛮适合,在subprocess也不用重新定义1D array 08/06 16:30
谢谢,我也试过用Array把Dataold设定lock=false 但似乎没用,google许久才发现windows似乎锁死spawn ※ 编辑: Draic5566 (23.242.118.130 美国), 08/07/2021 00:54:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP