无法使并行处理在python中工作
此代码总是抛出错误“[Errno 32]断管”(该错误在表示进程[i].start()的行上抛出):无法使并行处理在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 ))) 参数列表末尾的额外逗号会导致参数列表继续查找其他
为什么这种方法不起作用?您的问题实际上在前面一行
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 )))