Pytorch dataloader在加載最后一個(gè)batch時(shí)卡死的解決
問(wèn)題:
自己寫(xiě)了個(gè)dataloader,為了部署方便,用OpenCV的接口進(jìn)行數(shù)據(jù)讀取,而沒(méi)有用PIL,代碼大致如下:
def __getitem__(self, idx): sample = self.samples[idx] img = cv2.imread(sample[0]) img = cv2.resize(img, tuple(self.input_size)) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # if not self.val and random.randint(1, 10) < 3: # img = self.img_aug(img) img = Image.fromarray(img) img = self.transforms(img) ...
結(jié)果在訓(xùn)練過(guò)程中,在第1個(gè)epoch的最后一個(gè)batch時(shí),程序卡死。
解決方案:
可能是因?yàn)镺penCV與Pytorch互鎖的問(wèn)題,關(guān)閉OpenCV的多線程,問(wèn)題解決。
cv2.setNumThreads(0) cv2.ocl.setUseOpenCL(False)
補(bǔ)充:pytorch 中一個(gè)batch的訓(xùn)練過(guò)程
# 一般情況下 optimizer.zero_grad() # 梯度清零 preds = model(inputs) # inference,前向傳播求出預(yù)測(cè)值 loss = criterion(preds, targets) # 計(jì)算loss loss.backward() # 反向傳播求解梯度 optimizer.step() # 更新權(quán)重,更新網(wǎng)絡(luò)權(quán)重參數(shù)
此外,反向傳播前,如果不進(jìn)行梯度清零,則可以實(shí)現(xiàn)梯度累加,從而一定程度上解決顯存受限的問(wèn)題。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- pytorch鎖死在dataloader(訓(xùn)練時(shí)卡死)
- pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例
- 解決Pytorch dataloader時(shí)報(bào)錯(cuò)每個(gè)tensor維度不一樣的問(wèn)題
- pytorch中DataLoader()過(guò)程中遇到的一些問(wèn)題
- Pytorch 如何加速Dataloader提升數(shù)據(jù)讀取速度
- pytorch DataLoader的num_workers參數(shù)與設(shè)置大小詳解
- pytorch 實(shí)現(xiàn)多個(gè)Dataloader同時(shí)訓(xùn)練
相關(guān)文章
一條命令解決mac版本python IDLE不能輸入中文問(wèn)題
本文通過(guò)一條命令幫助大家解決mac版本python IDLE無(wú)法輸入中文問(wèn)題,需要的朋友可以參考下2018-05-05詳解Python實(shí)現(xiàn)同時(shí)支持帶調(diào)用和不調(diào)用帶裝飾器
一般來(lái)說(shuō),不帶參數(shù)裝飾器,再使用時(shí)不加括號(hào),帶參數(shù)的裝飾器使用時(shí)必須加括號(hào),這篇文章主要介紹了Python實(shí)現(xiàn)同時(shí)支持帶調(diào)用和不調(diào)用帶裝飾器的相關(guān)知識(shí),需要的朋友可以參考下2023-06-06Linux添加Python?path方法及修改環(huán)境變量的三種方法
這篇文章主要介紹了Linux添加Python?path方法及修改環(huán)境變量的三種方法,Linux 下設(shè)置環(huán)境變量有三種方法,一種用于當(dāng)前終端,一種用于當(dāng)前用戶,一種用于所有用戶,本文對(duì)每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07詳解利用Pytorch實(shí)現(xiàn)ResNet網(wǎng)絡(luò)之評(píng)估訓(xùn)練模型
這篇文章主要為大家介紹了利用Pytorch實(shí)現(xiàn)ResNet網(wǎng)絡(luò)之評(píng)估訓(xùn)練模型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python Pandas分組聚合的實(shí)現(xiàn)方法
這篇文章主要介紹了Python Pandas分組聚合的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07pytorch實(shí)現(xiàn)保證每次運(yùn)行使用的隨機(jī)數(shù)都相同
今天小編就為大家分享一篇pytorch實(shí)現(xiàn)保證每次運(yùn)行使用的隨機(jī)數(shù)都相同,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解
今天小編就為大家分享一篇對(duì)Pyhon實(shí)現(xiàn)靜態(tài)變量全局變量的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python如何用NumPy讀取和保存點(diǎn)云數(shù)據(jù)
這篇文章主要介紹了Python如何用NumPy讀取和保存點(diǎn)云數(shù)據(jù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08