我有遗传算法,可以为我执行超参数搜索神经网络。我有10代,每代产生20个神经网络。但是现在,对于每一代人来说,我一次都在训练一个网络。因此,这需要很长时间。相反,我尝试进行多处理,其中每代并行训练所有20个神经网络。但是,当我这样做时,我的神经网络信息不会被更新。这就是我一步一步训练20个神经网络的工作:
def train_networks(networks,dataset):
"""Train each network.
Args:
networks (list): Current population of networks
dataset (str): Dataset to use for training/evaluating
"""
print('training each network')
pbar = tqdm(total=len(networks))
for network in networks:
print('training network - inside loop')
network.train(dataset)
pbar.update(1)
pbar.close()
print('done training')
我想在这里使用多重处理。对于多处理,我执行了以下操作:
def train_networks(networks,dataset):
"""Train each network.
Args:
networks (list): Current population of networks
dataset (str): Dataset to use for training/evaluating
"""
for network in networks:
p = multiprocessing.Process(target=network.train,args=(dataset,))
p.start()
p.join()
但这不起作用。如何修改代码,以便并行训练所有20个网络。帮助将不胜感激。