最近在使用进程池的时候发现了这错误!下面是自己调用的简化过程,不考虑语法错误,大概就是map函数的第二个参数中放了一个包含类实例的迭代器,这个类包含了一个模型参数初始化的tensorflow的session
def func(net):
return net.predict()
class Detecter(object):
def __init__(self, file):
with tf.Graph().as_default():
self.sess = tf.Session()
tf.train.Saver(self.sess,file)
def predict(self):
self.sess.run()
detecter = [Detecter('./model.ckpt')]*4
for batch in range(0,4,4):
bb = multiprocessing.pool.map(func, izip(detecter[:4]))
解决方案:将原先导入“from multiprocessing import Pool”改为“from multiprocessing.pool import ThreadPool as Pool ”