如何使用mutliprocessing.Pool解决“无法腌制_thread.RLock对象”错误?

问题描述

我无法解决以下代码的问题:

def evaluate_chromosomes(model,train_data,train_labels,pop_size,chrom_pop,chrom_key_spliter):
    score_chrom = []
    pop_size = int(pop_size)
    for i in range(pop_size):  # Ce bloque prend du temps. Peut être changer?
        chrom_LbL = decoding_chromosome(chrom_pop[:][i],chrom_key_spliter)
        ii= 0
        for layer in model.layers:
            layer.set_weights(chrom_LbL[ii])
            ii = ii+1
        evaluation = model.evaluate(train_data,batch_size = 50,verbose=0)
        score_chrom.append(evaluation[0])
    return score_chrom # Liste de tuples tel que (mse,index dans la pop de chromosomes)

list_chrom = [new_chrom,mutated_children,crossed_children,parents_selected]
pool = mp.Pool(4)
results = pool.starmap(evaluate_chromosomes,[(model,len(chrom),chrom,chrom_key_spliter) for chrom in  list_chrom])
pool.close()

我有TypeError: can't pickle _thread.RLock objects作为回报,但我不明白这意味着什么...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)