python for 循环 多线程_python:for循环中的多线程处理
我必须用固定的时间步长来求解ODE系统。在每一个时间步,我必须计算出一些类似的方程的输出(我正在编程一个神经网络,我必须计算每个神经元的值)。这些神经元由一个ODE系统表示)。因此,我想在循环内并行计算。我试着使用线程包,但我应该做错事,因为它不起作用。。。(在下面的代码中,为了清晰起见,我跳过了输入的生成)class EBNMCPU(threading.Thread):def __init__(
我必须用固定的时间步长来求解ODE系统。在每一个时间步,我必须计算出一些类似的方程的输出(我正在编程一个神经网络,我必须计算每个神经元的值)。这些神经元由一个ODE系统表示)。因此,我想在循环内并行计算。我试着使用线程包,但我应该做错事,因为它不起作用。。。(在下面的代码中,为了清晰起见,我跳过了输入的生成)class EBNMCPU(threading.Thread):
def __init__(self, threadID, Ts, OnDir):
self.threadID = threadID
self.Neuron=NM.EBN(Ts,Dir=OnDir)
threading.Thread.__init__(self)
def run(self,Glu=[np.array([1.0],dtype='float'),0.0],GlyOPN=np.array([1.0],dtype='float'),GlyIBN=np.array([0.0],dtype='float')):
threadLock.acquire()
self.Neuron.NextStep(Glu, GlyOPN, GlyIBN)
threadLock.release()
def getOutput(self):
return self.Neuron.getOutput()
if __name__ == '__main__':
Ts=np.array( [0.005] , dtype=float)
threadLock = threading.Lock()
EBN=[]
for ii in np.arange(0,10):
EBN.append(EBNMCPU(ii,Ts,OnDir=0.0))
for tc in EBN:
tc.start()
for ii in np.arange(0,NSample):
for tc in EBN:
tc.run([np.array([AllY[ii,1]]),0.0],np.array([AllY[ii,2]]),np.array([AllY[ii,3]]))
for tc in EBN:
tc.join()
问题是我在我的系统管理器中没有看到任何并行活动。。。在
感谢您的意见/帮助
皮埃尔
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)