如何在 PP 中的函数中调用模块,其中该功能包含其他函数



我目前正在使用并行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 'nnLoaded network {:s}'.format(caffemodel)
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
print 'Demo for CN image...'
return demo2(net, filename)

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

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

f1 = job_server.submit(detect_cn, (filename,),modules=("math","numpy", ...))

最新更新