如何解決PyTorch程序占用較高CPU問題
PyTorch程序占用較高CPU問題
在使用服務(wù)器運(yùn)行PyTorch程序時(shí),使用TOP命令查看CPU狀態(tài),發(fā)現(xiàn)CPU占用率竟然達(dá)到2000%,已經(jīng)影響到其他人正常使用服務(wù)器。
解決辦法
在main程序中加以下代碼:
torch.set_num_threads(1)
設(shè)置最多使用1個(gè)CPU核。
問題解決~
pytorch訓(xùn)練占用cpu過高,num_works和set_num_threads設(shè)置均無效,發(fā)現(xiàn)是數(shù)據(jù)擴(kuò)增問題
這是我使用pytorch訓(xùn)練模型的時(shí)候,出現(xiàn)cpu占用過多的情況,無關(guān)pytorch版本
dataloader 的 num_work=1 的時(shí)候單線程cpu占用量2800,也就是一半的cpu,我服務(wù)器一共28*2個(gè)邏輯cpu

dataloader 的 num_work=8 的時(shí)候8個(gè)線程cpu占用500-700,合計(jì)2800

使用網(wǎng)上教程的如下指令,沒有任何效果
cpu_num = 1
os.environ["OMP_NUM_THREADS"] = str(cpu_num)
os.environ["OPENBLAS_NUM_THREADS"] = str(cpu_num)
os.environ["MKL_NUM_THREADS"] = str(cpu_num)
os.environ["VECLIB_MAXIMUM_THREADS"] = str(cpu_num)
os.environ["NUMEXPR_NUM_THREADS"] = str(cpu_num)
torch.set_num_threads(cpu_num)最后發(fā)現(xiàn)是數(shù)據(jù)擴(kuò)增惹的禍,我是用的數(shù)據(jù)擴(kuò)增庫是albumentations,其中所使用的基于opencv的各種數(shù)據(jù)變換占用了太多的cpu,因此只需要限制opencv的線程數(shù)目則可:
import cv2 import albumentations cv2.setNumThreads(1) # 0也可以
再設(shè)置 dataloader 的 num_work=2 的情況

雖然不清楚這里為什么有3個(gè),但目的達(dá)成了,而且訓(xùn)練速度和cpu占用2800的時(shí)候一樣。
在albumentations的github網(wǎng)址也有相關(guān)聯(lián)的一小段說明,但不是本篇文章遇到的問題, cv2.ocl.setUseOpenCL(False) 對于本篇文章問題可以不加。

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python使用numpy讀取、保存txt數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇python使用numpy讀取、保存txt數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了Python基于Pymssql模塊實(shí)現(xiàn)連接SQL Server數(shù)據(jù)庫的方法,較為詳細(xì)的分析了pymssql模塊的下載、安裝及連接、操作SQL Server數(shù)據(jù)庫的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07
詳解在python中如何使用zlib模塊進(jìn)行數(shù)據(jù)壓縮和解壓縮
Python有一些內(nèi)置庫用于處理數(shù)據(jù)壓縮和解壓縮,其中一個(gè)就是zlib模塊,這個(gè)模塊為DEFLATE壓縮算法和相關(guān)的gzip(文件格式)提供了支持,在這篇文章中,我們將深入探討如何使用zlib模塊進(jìn)行數(shù)據(jù)壓縮和解壓縮2023-06-06
python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
pandas之query方法和sample隨機(jī)抽樣操作
這篇文章主要介紹了pandas之query方法和sample隨機(jī)抽樣操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
使用Python輕松實(shí)現(xiàn)隱藏、顯示和修改Excel網(wǎng)格線
在數(shù)據(jù)處理和報(bào)表制作中,Excel 是最常用的工具之一,而網(wǎng)格線(Gridlines)作為 Excel 默認(rèn)的背景輔助線,本文將介紹如何使用 Spire.XLS for Python 庫,通過簡單的代碼實(shí)現(xiàn) Excel 網(wǎng)格線的隱藏/顯示以及顏色修改快跟隨小編一起學(xué)習(xí)一下吧2026-03-03

