【转载】numpy 为什么在python中显示“NumExpr defaulting to 8 threads.“警告消息?
转自:https://www.saoniuhuo.com/question/detail-2280987.html
我尝试使用python中的lux库来获得可视化建议。它显示了类似**NumExpr默认为8个线程。**的警告。
import pandas as pdimport numpy as npimport opendatasets as odpip install lux-apiimport luximport matplotlib
然后道:
link = "https://www.kaggle.com/noordeen/insurance-premium-prediction"od.download(link)df = pd.read_csv("./insurance-premium-prediction/insurance.csv")
但是,一切都工作正常。是否有任何问题或我应该忽略它?警告显示如下:【略】
kh212irz1#
在大多数情况下,这并不是什么值得担心的事情。警告来自这个函数,这里是最重要的部分:
...env_configured = Falsen_cores = detect_number_of_cores()if 'NUMEXPR_MAX_THREADS' in os.environ:# The user has configured NumExpr in the expected way, so suppress logs.env_configured = Truen_cores = MAX_THREADS...if 'NUMEXPR_NUM_THREADS' in os.environ:requested_threads = int(os.environ['NUMEXPR_NUM_THREADS'])elif 'OMP_NUM_THREADS' in os.environ:requested_threads = int(os.environ['OMP_NUM_THREADS'])else:requested_threads = n_coresif not env_configured:log.info('NumExpr defaulting to %d threads.'%n_cores)
因此,如果NUMEXPR_MAX_THREADS、NUMEXPR_NUM_THREADS和OMP_NUM_THREADS都没有设置,NumExpr使用的线程数与内核数相同(即使文档中说“最多8个”,但这不是我在代码中看到的)。
您可能希望使用其他数量的线程,例如,当计算非常大的矩阵时,您可以从中受益,或者使用更少的线程,因为没有任何改进。在shell中或在导入numexpr之前设置环境变量,例如:
import osos.environ['NUMEXPR_MAX_THREADS'] = '4'os.environ['NUMEXPR_NUM_THREADS'] = '2'import numexpr as ne
欢迎大家评论交流,发现博文中存在的问题一定要留言哦

浙公网安备 33010602011771号