Python:多处理,多个参数,以及修改相同的字典

时间:2017-08-27 09:26:29

标签: python multiprocessing

正如标题所说,我有一个程序要通过multiprocessing进行并行化。具体来说,我有dict int作为keystring(' sa)作为value

我要做的就是创建一个新的dict,对旧dict的网址进行了一些转换:

def convert_url(_id, url, sess):   
  im = get_image(url) #get_image is defined elsewhere
  return _id, sess.run(end_points['vgg_16/fc7'], feed_dict={input_tensor: im})

您可以看到我从网址中检索图像,然后使用张量流CNN来转换图像。

但是,我无法管理此功能的并行化。这是我尝试过的(假设sess,其他张量流程在其他地方初始化):

from multiprocessing import Pool
from functools import partial

with Pool(processes=3) as pool:
  results = pool.starmap(partial(convert_url, sess=sess), some_dict.items()))

我最终获得的是TypeError

TypeError: can't pickle _thread.lock objects

(我知道results不会像dict那样写,但将它转换成一个是微不足道的。我不知道如何做到这一点。 )

任何帮助?

0 个答案:

没有答案