我正在使用dlib训练一个形状预测器,用于对图片进行地标检测。到目前为止一切都很好,我的成绩也不错。我正在使用
options = dlib.shape_predictor_training_options()
和
options.num_threads = 12
这是我的cpu线程数。我试过其他数字,但在训练时只使用了1个核心。
我想用我所有的核心力量进行训练,因为这只需要1分。
我在windows 10上使用conda-env、python 3.5.6和dlib 18.18。我在网上找不到这个问题的任何解决方案。希望得到你们的帮助。
这里也有类似的问题。我在做人脸识别,而不是训练。我使用的是函数dlib.get_frontal_face_detector((.
或多或少我是这样解决的。
我有脚本my_script.py.
里面有函数my_script((。
在my_script((中有几个指令,特别是dlib函数。
import dlib
def my_script():
dlib.get_frontal_face_detector().
在my_script.py中有函数my_script((,还有一个经典的多线程代码块。
此多线程代码适用于每个线程函数,但不适用于my_script((,因为它包含DLIB FUNCTIONS。
因此,我删除了多线程代码,并在后台的bash shell中运行了几个my_script.py实例。
my_script.py &
my_script.py &
my_script.py &
etc..
更好的解决方案是使用SUBPROCESS。
所以我创建了另一个脚本my_script2.py。里面有两个代码块。
A。下面定义的函数my_script2((。
B。一个经典的多线程代码块。
作为线程函数,我使用函数my_script2((。
在my_script2((中有命令subprocess.run.
命令subprocess.run调用my_script.py.
在my_script.py中只有函数my_script((。
正如您在前面的示例中看到的,在my_script((中有函数dlib.get_frontal_face_detector((.
def my_script2():
command='python my_script.py'
os.chdir(directory_of_myscript)
subprocess.run(command,shell=True)
我只是想观察一下,有些人也有类似的问题。
OpenCV/Python:实时人脸识别的多线程
如何使用多线程优化人脸检测?