国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決pytorch訓(xùn)練的過程中內(nèi)存一直增加的問題

這篇具有很好參考價值的文章主要介紹了解決pytorch訓(xùn)練的過程中內(nèi)存一直增加的問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

來自:解決pytorch訓(xùn)練的過程中內(nèi)存一直增加的問題 - 知乎

pytorch訓(xùn)練中內(nèi)存一直增加的原因(部分)

  • 代碼中存在累加loss,但每步的loss沒加item()
import torch
import torch.nn as nn
from collections import defaultdict

if torch.cuda.is_available():
    device = 'cuda'
else:
    device = 'cpu'

model = nn.Linear(100, 400).to(device)
criterion = nn.L1Loss(reduction='mean').to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

train_loss = defaultdict(float)
eval_loss = defaultdict(float)

for i in range(10000):
    model.train()
    x = torch.rand(50, 100, device=device)
    y_pred = model(x) # 50 * 400
    y_tgt = torch.rand(50, 400, device=device)

    loss = criterion(y_pred, y_tgt)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    
    # 會導(dǎo)致內(nèi)存一直增加,需改為train_loss['loss'] += loss.item()
    train_loss['loss'] += loss

    if i % 100 == 0:
        train_loss = defaultdict(float)
        model.eval()
        x = torch.rand(50, 100, device=device)
        y_pred = model(x) # 50 * 400

        y_tgt = torch.rand(50, 400, device=device)
        loss = criterion(y_pred, y_tgt)

        # 會導(dǎo)致內(nèi)存一直增加,需改為eval_loss['loss'] += loss.item()
        eval_loss['loss'] += loss
以上代碼會導(dǎo)致內(nèi)存占用越來越大,解決的方法是:train_l oss['loss'] += loss.item() 以及 eval_loss['loss'] += loss.item()。值得注意的是,要復(fù)現(xiàn)內(nèi)存越來越大的問題,模型中需要切換model.train() 和 model.eval(),train_loss以及eval_loss的作用是保存模型的平均誤差(這里是累積誤差),保存到tensorboard中。

文章來源地址http://www.zghlxwxcb.cn/news/detail-758453.html

到了這里,關(guān)于解決pytorch訓(xùn)練的過程中內(nèi)存一直增加的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • PyTorch深度學(xué)習(xí)實戰(zhàn)(1)——神經(jīng)網(wǎng)絡(luò)與模型訓(xùn)練過程詳解

    PyTorch深度學(xué)習(xí)實戰(zhàn)(1)——神經(jīng)網(wǎng)絡(luò)與模型訓(xùn)練過程詳解

    人工神經(jīng)網(wǎng)絡(luò) ( Artificial Neural Network , ANN ) 是一種監(jiān)督學(xué)習(xí)算法,其靈感來自人類大腦的運(yùn)作方式。類似于人腦中神經(jīng)元連接和激活的方式,神經(jīng)網(wǎng)絡(luò)接受輸入,通過某些函數(shù)在網(wǎng)絡(luò)中進(jìn)行傳遞,導(dǎo)致某些后續(xù)神經(jīng)元被激活,從而產(chǎn)生輸出。函數(shù)越復(fù)雜,網(wǎng)絡(luò)對于輸入的數(shù)據(jù)擬

    2024年02月06日
    瀏覽(27)
  • pytorch 訓(xùn)練過程內(nèi)存泄露/顯存泄露debug記錄:dataloader和dataset導(dǎo)致的泄露

    微調(diào) mask-rcnn 代碼,用的是 torchvision.models.detection.maskrcnn_resnet50_fpn 代碼,根據(jù)該代碼的注釋,輸入應(yīng)該是: images, targets=None (List[Tensor], Optional[List[Dict[str, Tensor]]]) - Tuple[Dict[str, Tensor], List[Dict[str, Tensor]]] 所以我寫的 dataset 是這樣的: 大概思路是: 先把所有的標(biāo)注信息讀入內(nèi)存

    2024年02月14日
    瀏覽(26)
  • 【pytorch】隨著epoch增加,顯存逐漸增加?解決pytorch顯存釋放問題

    在訓(xùn)練時,檢測 “out of memory” 的error并通過torch.cuda.empty_cache()處理 如: 在測試時,避免忘記設(shè)置 torch.no_grad() 如: Pytroch - 顯存釋放問題

    2024年02月11日
    瀏覽(20)
  • (具體解決方案)訓(xùn)練GAN深度學(xué)習(xí)的時候出現(xiàn)生成器loss一直上升但判別器loss趨于0

    (具體解決方案)訓(xùn)練GAN深度學(xué)習(xí)的時候出現(xiàn)生成器loss一直上升但判別器loss趨于0

    今天小陶在訓(xùn)練CGAN的時候出現(xiàn)了繃不住的情況,那就是G_loss(生成器的loss值)一路狂飆,一直上升到了6才逐漸平穩(wěn)。而D_loss(判別器的loss值)卻越來越小,具體的情況就看下面的圖片吧。其實這在GAN訓(xùn)練里是非常容易遇到的問題,所以不用慌,是有解決的辦法的。小陶就通

    2024年02月14日
    瀏覽(113)
  • 深度學(xué)習(xí)筆記--解決GPU顯存使用量不斷增加的問題

    目錄 1--問題描述 2--問題解決 3--代碼 ??????? 基于 Pytorch 使用 VGG16 預(yù)訓(xùn)練模型進(jìn)行分類預(yù)測時,出現(xiàn) GPU 顯存使用量不斷增加,最終出現(xiàn) cuda out of memory 的問題; ??????? 出現(xiàn)上述問題的原因在于:輸入數(shù)據(jù)到網(wǎng)絡(luò)模型進(jìn)行推理時,會默認(rèn)構(gòu)建計算圖,便于后續(xù)反向傳播

    2024年02月17日
    瀏覽(18)
  • 解決yolo3目標(biāo)檢測訓(xùn)練過程中train.py運(yùn)行問題

    yolo3是一種廣泛使用的目標(biāo)檢測算法,它在計算機(jī)視覺領(lǐng)域具有很高的準(zhǔn)確率和性能。然而,在使用yolo3進(jìn)行目標(biāo)檢測訓(xùn)練時,有時會出現(xiàn)train.py運(yùn)行問題。本文將探討如何解決這個問題。 首先,讓我們了解一下訓(xùn)練過程中可能遇到的常見問題: 缺少依賴項:運(yùn)行train.py之前,

    2024年02月15日
    瀏覽(24)
  • 深度剖析 ThreadLocal 內(nèi)存泄露問題及解決方案

    在多線程編程中, ThreadLocal 是一個常用的工具,用于在每個線程中維護(hù)獨立的變量,避免了線程間的數(shù)據(jù)共享問題。然而,使用不當(dāng)時, ThreadLocal 可能引發(fā)內(nèi)存泄露,這是一個開發(fā)者們常常需要面對的難題。本文將深度剖析 ThreadLocal 內(nèi)存泄露的原因,探討解決方案,以及如

    2024年01月17日
    瀏覽(21)
  • 人工智能(pytorch)搭建模型9-pytorch搭建一個ELMo模型,實現(xiàn)訓(xùn)練過程

    人工智能(pytorch)搭建模型9-pytorch搭建一個ELMo模型,實現(xiàn)訓(xùn)練過程

    大家好,我是微學(xué)AI,今天給大家介紹一下人工智能(pytorch)搭建模型9-pytorch搭建一個ELMo模型,實現(xiàn)訓(xùn)練過程,本文將介紹如何使用PyTorch搭建ELMo模型,包括ELMo模型的原理、數(shù)據(jù)樣例、模型訓(xùn)練、損失值和準(zhǔn)確率的打印以及預(yù)測。文章將提供完整的代碼實現(xiàn)。 ELMo模型簡介 數(shù)據(jù)

    2024年02月07日
    瀏覽(106)
  • PyTorch訓(xùn)練深度卷積生成對抗網(wǎng)絡(luò)DCGAN

    PyTorch訓(xùn)練深度卷積生成對抗網(wǎng)絡(luò)DCGAN

    將CNN和GAN結(jié)合起來,把監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)結(jié)合起來。具體解釋可以參見 深度卷積對抗生成網(wǎng)絡(luò)(DCGAN) DCGAN的生成器結(jié)構(gòu): 圖片來源:https://arxiv.org/abs/1511.06434 model.py 訓(xùn)練使用的數(shù)據(jù)集:CelebA dataset (Images Only) 總共1.3GB的圖片,使用方法,將其解壓到當(dāng)前目錄 圖片如下圖所

    2024年02月12日
    瀏覽(25)
  • 【深度學(xué)習(xí)】BasicSR訓(xùn)練過程記錄,如何使用BasicSR訓(xùn)練GAN

    【深度學(xué)習(xí)】BasicSR訓(xùn)練過程記錄,如何使用BasicSR訓(xùn)練GAN

    BasicSR支持兩種靈活的使用場景,以滿足用戶不同的需求: 本地克隆倉庫使用: 用戶可以直接克隆BasicSR的本地倉庫,查看完整的代碼并進(jìn)行修改,例如在BasicSR中訓(xùn)練SRGAN或StyleGAN2。安裝方式包括先執(zhí)行 git clone ,然后運(yùn)行 python setup.py develop/install 。詳細(xì)信息請參考安裝指南。

    2024年01月23日
    瀏覽(81)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包