无法使并行处理在python中工作

无法使并行处理在python中工作,python,python-3.x,parallel-processing,multiprocessing,Python,Python 3.x,Parallel Processing,Multiprocessing,此代码总是抛出错误“[Errno 32]断管”(该错误在表示进程[i].start()的行上抛出): 为什么这种方法不起作用?您的问题实际上在前面一行 processes.append(Process(target=train_network, args=(ensemble, i, ))) 应该是: processes.append(Process(target=train_network, args=(ensemble, i ))) 参数列表末尾的额外逗号会导致参数列表继续查找其他

此代码总是抛出错误“[Errno 32]断管”(该错误在表示进程[i].start()的行上抛出):


为什么这种方法不起作用?

您的问题实际上在前面一行

  processes.append(Process(target=train_network, args=(ensemble, i, )))
应该是:

  processes.append(Process(target=train_network, args=(ensemble, i )))

参数列表末尾的额外逗号会导致参数列表继续查找其他条目,而不是关闭。这会导致下一行出现语法错误,因为解析器仍在尝试查找前一行的另一个参数。

否,可以在python列表、元组和dict中使用尾随逗号。例如
(1,2,)
就是
(1,2)
。列表和元组,是的。参数列表?我认为它试图将不存在的第三个参数传递给
列车网络
,导致
管道破裂
消息。如果只关注参数表达式
args=(集成,I,)
它只是一个
元组
,它将被发送到进程,并作为位置参数扩展到
训练网络
。如果这是问题所在,OP可能会出现语法错误。但是看到的却是一条断裂的管道(这意味着子流程已启动)。您是否在Windows上运行?如果是,则在子进程中调用
employ=NetworkEnsemble(NUM_NETWORKS,(600),0.01)
employ.full_employ\u evaluation()
。有什么原因会断裂吗?
  processes.append(Process(target=train_network, args=(ensemble, i )))