欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決pytorch GPU 計(jì)算過程中出現(xiàn)內(nèi)存耗盡的問題

 更新時(shí)間:2019年08月19日 17:03:33   作者:bob_chen_csdn  
今天小編就為大家分享一篇解決pytorch GPU 計(jì)算過程中出現(xiàn)內(nèi)存耗盡的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

Pytorch GPU運(yùn)算過程中會(huì)出現(xiàn):“cuda runtime error(2): out of memory”這樣的錯(cuò)誤。通常,這種錯(cuò)誤是由于在循環(huán)中使用全局變量當(dāng)做累加器,且累加梯度信息的緣故,用官方的說法就是:"accumulate history across your training loop"。在默認(rèn)情況下,開啟梯度計(jì)算的Tensor變量是會(huì)在GPU保持他的歷史數(shù)據(jù)的,所以在編程或者調(diào)試過程中應(yīng)該盡力避免在循環(huán)中累加梯度信息。

下面舉個(gè)栗子:

上代碼:

total_loss=0
for i in range(10000):
  optimizer.zero_grad()
  output=model(input)
  loss=criterion(output)
  loss.backward()
  optimizer.step()
  total_loss+=loss
  #這里total_loss是跨越循環(huán)的變量,起著累加的作用,
  #loss變量是帶有梯度的tensor,會(huì)保持歷史梯度信息,在循環(huán)過程中會(huì)不斷積累梯度信息到tota_loss,占用內(nèi)存

以上例子的修正方法是在循環(huán)中的最后一句修改為:total_loss+=float(loss),利用類型變換解除梯度信息,這樣,多次累加不會(huì)累加梯度信息。

局部變量逗留導(dǎo)致內(nèi)存泄露

局部變量通常在變量作用域之外會(huì)被Python自動(dòng)銷毀,在作用域之內(nèi),不需要的臨時(shí)變量可以使用del x來銷毀。

在設(shè)計(jì)Linear Layers 的時(shí)候,盡量讓其規(guī)模小點(diǎn)

對于nn.Linear(m,n)這樣規(guī)模的線性函數(shù),他的空間規(guī)模為O(mn),除此規(guī)模的空間來容納參數(shù)意外,還需要同樣規(guī)模的空間來存儲(chǔ)梯度,由此很容易造成GPU空間溢出。

相關(guān)的進(jìn)程管理bash cmd

nvidia-smi監(jiān)控GPU,

watch -n 1 nvidia-smi實(shí)時(shí)監(jiān)控GPU,

watch -n 1 lscpu實(shí)時(shí)監(jiān)控CPU,

ps -elf進(jìn)程查看,

ps -elf | grep python查看Python子進(jìn)程,

kill -9 [PID]殺死進(jìn)程PID。

Referance:

Pytorch documentations

以上這篇解決pytorch GPU 計(jì)算過程中出現(xiàn)內(nèi)存耗盡的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中cv2.projectPoints的用法小結(jié)

    python中cv2.projectPoints的用法小結(jié)

    這篇文章主要介紹了python中cv2.projectPoints的用法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • Python爬取股票交易數(shù)據(jù)并可視化展示

    Python爬取股票交易數(shù)據(jù)并可視化展示

    拋開炒股技術(shù)不說,?那么多股票數(shù)據(jù)是不是非常難找,找到之后是不是看著密密麻麻的數(shù)據(jù)是不是頭都大了?今天帶大家爬取雪球平臺(tái)的股票數(shù)據(jù)并將其可視化
    2021-12-12
  • Python之指數(shù)與E記法的區(qū)別詳解

    Python之指數(shù)與E記法的區(qū)別詳解

    今天小編就為大家分享一篇Python之指數(shù)與E記法的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實(shí)現(xiàn)抓取網(wǎng)頁生成Excel文件的方法示例

    Python實(shí)現(xiàn)抓取網(wǎng)頁生成Excel文件的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)抓取網(wǎng)頁生成Excel文件的方法,涉及PyQuery模塊的使用及Excel文件相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Django顯示可視化圖表的實(shí)踐

    Django顯示可視化圖表的實(shí)踐

    這篇文章主要介紹了Django顯示可視化圖表的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python正則表達(dá)式指南 推薦

    Python正則表達(dá)式指南 推薦

    本文介紹了Python對于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫高效的正則表達(dá)式、如何優(yōu)化正則表達(dá)式,這些主題請查看其他教程。
    2018-10-10
  • pytorch1.0中torch.nn.Conv2d用法詳解

    pytorch1.0中torch.nn.Conv2d用法詳解

    今天小編就為大家分享一篇pytorch1.0中torch.nn.Conv2d用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn)

    springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn)

    本文主要介紹了springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 對django 模型 unique together的示例講解

    對django 模型 unique together的示例講解

    今天小編就為大家分享一篇對django 模型 unique together的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 火遍網(wǎng)絡(luò)的python中秋節(jié)賀卡現(xiàn)在學(xué)還趕得上

    火遍網(wǎng)絡(luò)的python中秋節(jié)賀卡現(xiàn)在學(xué)還趕得上

    中秋將至,我用python編寫了個(gè)火遍網(wǎng)絡(luò)的中秋節(jié)賀卡,現(xiàn)在學(xué)起來還不晚,文中給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評論