91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于CUDA?out?of?memory的解決方法是什么

發布時間:2023-02-22 11:26:32 來源:億速云 閱讀:115 作者:iii 欄目:開發技術

今天小編給大家分享一下基于CUDA out of memory的解決方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    CUDA out of memory的解決

    我的輸入樣本維度是(1000,12,24,72),一開始我是這么輸入數據的:

    trainer.train(x_train, t_train, x_val, t_val)

    發現必溢出,后來我取出其中400個樣本輸入:

    trainer.train(x_train[:400], t_train[:400], x_val, t_val)

    發現不溢出了,訓練正常,然后我把400刪掉,但沒刪冒號:

    trainer.train(x_train[:], t_train[:], x_val, t_val)

    竟然也沒有溢出!!!雖然訓練速度降了,但是也能正常訓練,我不是很懂原理是啥,好神奇!

    但是樣本量一大起來,即使用冒號法還是可能會溢出。比方說我后來把4000個樣本作為x/t_train:

    >>>x_train.shape
    (4000,12,24,72)
    >>>t_train.shape
    (4000,24)
    >>>trainer.train(x_train[:], t_train[:], x_val, t_val)
    RuntimeError:CUDA out of memory...

    之所以說“可能”會溢出,是因為確實是有小概率能正常訓練的,但是大部分情況還是會out of memory…

    再附上兩個我昨天看到的兩種不同的解決方案。

    一個是減少帶梯度的中間變量(即非葉子節點)。簡言之,能一行代碼搞定的,盡量不要寫成多行,即使寫成多行,也要盡可能減少新變量的建立。

    另一個是在eval的時候,讓所有的變量都不帶梯度。只需要添加一行代碼:

    with torch.no_grad():
        outputs = Net_(inputs)

    在with語句里的所有變量requires_grad都是False。

    CUDA error: out of memory問題

    本人遇到的問題是在訓練是正常,一到驗證時就會出現cuda error: out of memory的問題

    解決思路溯尋

    1.首先就是考慮減少batch_size和num_worker,對于我的情況不奏效

    2.然后找到pin_memory發現是設置的True,改為false,仍舊不管用

    3.包括把

     # Empty GPU cache
            if torch.cuda.is_available():
                torch.cuda.empty_cache()

    放到報錯位置的前后,不奏效

    4.后來再聚焦問題關鍵,是一到驗證就會出問題,所以專門查攻略,我初步懷疑是因為驗證沒有參與反向傳播,梯度累積,內存爆了,但當時代碼中有with torch.no_grad(): ,所以并沒有發現關鍵,知道看到別人里面 forword是放在with torch.no_grad()后面的,所以最后

    with torch.no_grad():
                    # Forward pass
                    loss, np_probs, hv_logits = self.forward(images, targets)

    以上就是“基于CUDA out of memory的解決方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    中江县| 岗巴县| 张北县| 崇文区| 慈溪市| 吉林市| 宁乡县| 文化| 饶平县| 北碚区| 岢岚县| 峨边| 威远县| 山阳县| 南京市| 杭锦后旗| 四平市| 开化县| 灵石县| 盐山县| 双桥区| 寿宁县| 济阳县| 合水县| 长海县| 澄城县| 襄城县| 比如县| 平顶山市| 巴楚县| 哈尔滨市| 邯郸县| 勐海县| 东乡县| 遂平县| 信阳市| 桂林市| 长葛市| 安福县| 庆元县| 共和县|