首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么tensorflow使用100%的CPU核心?

问为什么tensorflow使用100%的CPU核心?
EN

Stack Overflow用户
提问于 2021-08-27 13:36:14
回答 1查看 802关注 0票数 0

我重新安装了木星笔记本内核和python包,包括tensorflow 2.4.1 (使用miniconda env)。

当我训练和测试一个模型时,我的CPU使用量就饱和了。在我以前的安装中,这种情况不会发生( CPU使用率低),完成任务的时间也不一样。

是否有jupyter和/或tensorflow的配置?我在木星笔记本和VSCode上测试过,同样的问题也会发生。Ubuntu20.04 16×内存Intel Core™i5-8300HCPU@ 2.30GHz×8

训练简单网络模型时的CPU使用- htop视图

编辑:条件解决。

我在英特尔网站上做了深入的研究,发现了这个关于线程配置的链接。用于Tensorflow和openMP。我在下面对tensorflow 2.x部分参数进行了一些快速测试,没有给出任何改进。

代码语言:javascript
复制
import tensorflow as tf
tf.config.threading.set_inter_op_parallelism_threads() 
tf.config.threading.set_intra_op_parallelism_threads()
tf.config.set_soft_device_placement(enabled)

然后测试openMP设置,将OMP_NUM_THREADS从0更改为8,如下图所示:

螺纹

代码语言:javascript
复制
import os
os.environ["OMP_NUM_THREADS"] = “16”

CPU使用减少,训练时间减少。

线程等于0

我不是ML基准测试方面的专家。刚刚修正了keras.Sequential()模型的网络训练参数和拓扑结构。不知道为什么我的CPU在默认情况下是最大的OMP_NUM_THREADS=16线程。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 17:53:04

在我们的多用户环境中,我们需要为更高优先级的任务保留一些cpu的空闲(我们没有‘尼斯’进程的权限)。因此,减少张力流(版本2.8.2) cpu-贪婪是相当必要的。上述解决方案在我们的纯cpu环境(linux,40个内核)中工作,并将线程间/内部线程限制为1。

代码语言:javascript
复制
import os
os.environ["OMP_NUM_THREADS"] = “8”

import tensorflow as tf
tf.config.threading.set_inter_op_parallelism_threads(1) 
tf.config.threading.set_intra_op_parallelism_threads(1)

这将cpu使用率限制在800%.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68954373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档