我有很多图像需要并行处理。在"Currently, this means that each thread pool will have one thread per
CPU core in your machine."
通过研究htop,我可以看到,在这个默认设置中,并不是所有的核心都被100%地利用,所以我想设置intra_op_parallelism_threads=1和{}并并行运行{}模型,不管它是如何运行的,甚至更糟糕。在
在我的8核笔记本上:
单核顺序处理:Model init time: 0.77 sec
Processing time: 37.58 sec
多CPU默认Tensorflow设置:
^{pr2}$
此代码使用多重处理:Model init time: 0.78 sec
Processing time: 39.14 sec
这是我使用multiprocessing的代码,我遗漏了什么?公司名称:import os
import glob
import time
import argparse
from multiprocessing.pool import ThreadPool
import multiprocessing
import itertools
import tensorflow as tf
import numpy as np
from tqdm import tqdm
import cv2
MODEL_FILEPATH = './tensorflow_example/inception_v3_2016_08_28_frozen.pb'
def get_image_filepaths(dataset_dir):
if not os.path.isdir(dataset_dir):
raise Exception(dataset_dir, 'not dir!')
img_filepaths = []
extensions = ['**/*.jpg', '**/*.png', '**/*.JPG', '**/*.PNG']