插件窝 干货文章 Pytorch限制或增加CPU使用的核数方式

Pytorch限制或增加CPU使用的核数方式

class 核数 CPU 线程 459    来源:    2024-10-17

Pytorch限制或增加CPU的核数

一般Pytorch 默认是使用一半的CPU运行的,有的时候用不到那么多得CPU资源或者占用太多资源挤压别人,这就需要限制核数。

Pytorch提供了一个限制核数的代码:

# cpu_num是一个整数
torch.set_num_threads(cpu_num)

这样就能够限制核数。

Python获取CPU的线程数量

在使用PyTorch搭建目标检测模型时,我们需要设置最佳的数据读取的进程数量;

我觉得,这个数量最好就设置成CPU的线程数量;

获取CPU的线程数量

获取CPU线程数量的代码:

from multiprocessing import cpu_count
print(cpu_count())

备注:

Python官方文档中关于multiprocessing.cpu_count()的功能是这样说的:

Return the number of CPUs in the system.

我先以为是文档描述的不准确,后来 

Andrew Svetlov在我的Python文档Bug提交中告诉我:

CPU as a shortcut for "logical processor" is very common in software engineering.

所以这里的“the number of CPUs”实际上就是指的系统可以获取到的CPU逻辑核心数;

如果是对于单个CPU而言,那就是当前CPU的线程数量;

总结

以上为个人经验,希望对您有所帮助。