0

我目前正在使用并行 python,并且在 job_server.submit 的参数中,我在模块中添加了库,但问题是即使该库中还有其他库。那我该怎么办?这是我要运行的代码:

    from tools.demo import detect_cn
    import pp

    job_server = pp.Server()
    f1 = job_server.submit(detect_cn, (filename,),modules=('tools.demo',))
    f2 = job_server.submit(detect_cn, (filename1,),modules=('tools.demo',))


    cnis, preproc_time, roi_file_images=f1()
    cnis1, preproc_time1, roi_file_images1=f2()

这是 demo.py 代码的一部分

import _init_paths
from fast_rcnn.config import cfg
from fast_rcnn.test import im_detect
from fast_rcnn.nms_wrapper import nms
from utils.timer import Timer
from ocr.clstm import clstm_ocr
from ocr.clstm import clstm_ocr_calib
import matplotlib.pyplot as plt
import numpy as np
import scipy.io as sio
import caffe, os, sys, cv2
import argparse
import werkzeug
import datetime
import math
import pytesseract
from PIL import Image


def detect_cn(filename):
cfg.TEST.HAS_RPN = True  # Use RPN for proposals

args = parse_args()

prototxt = os.path.join(cfg.MODELS_DIR, NETS[args.demo_net][0],
                        'faster_rcnn_alt_opt', 'faster_rcnn_test.pt')
caffemodel = os.path.join(cfg.DATA_DIR, 'faster_rcnn_models',
                          NETS[args.demo_net][1])

if not os.path.isfile(caffemodel):
    raise IOError(('{:s} not found.\nDid you run ./data/script/'
                   'fetch_faster_rcnn_models.sh?').format(caffemodel))

if args.cpu_mode:
    caffe.set_mode_cpu()
else:
    caffe.set_mode_gpu()
    caffe.set_device(args.gpu_id)
    cfg.GPU_ID = args.gpu_id
net = caffe.Net(prototxt, caffemodel, caffe.TEST)

print '\n\nLoaded network {:s}'.format(caffemodel)

print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
print 'Demo for CN image...'
return demo2(net, filename)

你认为我应该在作业 server.submit 的模块中加载所有这些库吗?我想用pp因为detect_cn需要2分钟才能给出结果有什么想法吗?

4

1 回答 1

0

是的,当您将函数提交到执行队列时,您应该导入所有这些模块。

f1 = job_server.submit(detect_cn, (filename,),modules=("math","numpy", ...))
于 2017-04-09T01:01:08.903 回答