我重新安装了木星笔记本内核和python包,包括tensorflow 2.4.1 (使用miniconda env)。
当我训练和测试一个模型时,我的CPU使用量就饱和了。在我以前的安装中,这种情况不会发生( CPU使用率低),完成任务的时间也不一样。
是否有jupyter和/或tensorflow的配置?我在木星笔记本和VSCode上测试过,同样的问题也会发生。Ubuntu20.04 16×内存Intel Core™i5-8300HCPU@ 2.30GHz×8
编辑:条件解决。
我在英特尔网站上做了深入的研究,发现了这个关于线程配置的链接。用于Tensorflow和openMP。我在下面对tensorflow 2.x部分参数进行了一些快速测试,没有给出任何改进。
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,如下图所示:
import os
os.environ["OMP_NUM_THREADS"] = “16”CPU使用减少,训练时间减少。
我不是ML基准测试方面的专家。刚刚修正了keras.Sequential()模型的网络训练参数和拓扑结构。不知道为什么我的CPU在默认情况下是最大的OMP_NUM_THREADS=16线程。
发布于 2022-11-16 17:53:04
在我们的多用户环境中,我们需要为更高优先级的任务保留一些cpu的空闲(我们没有‘尼斯’进程的权限)。因此,减少张力流(版本2.8.2) cpu-贪婪是相当必要的。上述解决方案在我们的纯cpu环境(linux,40个内核)中工作,并将线程间/内部线程限制为1。
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%.
https://stackoverflow.com/questions/68954373
复制相似问题