Pytorch運行過程中解決出現(xiàn)內(nèi)存不足的問題
1. 前提
利用Transformer模型進行O3濃度的反演
2. 問題
2.1 速度慢
一開始模型是在CPU上面跑的,為了加快速度,我改成了在GPU上跑
方法如下:
1、驗證pytorch是否存在GPU版本
在Pycharm命令行輸入
import torch print(torch.cuda.is_available) # 若輸出為True,則存在GPU版本 # 若輸出為False,則不存在GPU版本
我的輸出為True,說明pytorch是存在GPU版本的
2、將模型從CPU版本轉(zhuǎn)換到GPU版本
- 聲明使用GPU(指定具體的卡)
PS:torch.device()
是裝torch.Tensor
的一個空間。
device=torch.device('cuda' if torch.cuda.is_available() else 'cpu') # 'cuda' 這里如果沒有指定具體的卡號,系統(tǒng)默認cuda:0 device = torch.device('cuda:2') # 使用2號卡
- 將模型(model)加載到GPU上
model = Transformer() #例子中,采用Transformer模型 model.to(device)
- 將數(shù)據(jù)和標簽放到GPU上【注意!什么數(shù)據(jù)可以被放入GPU-Tensor類型的數(shù)據(jù)】
# 只有Tensor類型的數(shù)據(jù)可以放入GPU中 # 可以一個個【batch_size】進行轉(zhuǎn)換 inputs = inputs.to(device) labels = labels.to(device)
如果結(jié)果還是顯示你是在CPU上進行訓練,要不就是模型沒有加進去,要不就是數(shù)據(jù)沒有加進去
2.2 內(nèi)存不足
- 在使用CPU時,出現(xiàn)了內(nèi)存不足的情況
RuntimeError: [enforce fail at C:\cb\pytorch_1000000000000\work\c10\core\impl\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 280410627200 bytes.
- 在使用GPU時,出現(xiàn)了內(nèi)存不足的情況
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 261.15 GiB (GPU 0; 8.00 GiB total capacity; 487.30 MiB already allocated; 5.71 GiB free; 506.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try sett
我的模型在訓練的時候沒有問題,在進行預測的時候,總是出現(xiàn)內(nèi)存不足(1)一開始我以為是batch_size
大小的問題,在從128更改到4后,發(fā)現(xiàn)依舊存在問題,這說明不是batch_size
大小的問題。
(2)然后,我猜測是反演過程的問題
我在進行模型反演的過程中,直接將全部數(shù)據(jù)輸入到模型model
中(大概有10萬行),為了驗證這個問題,我添加了一個for循環(huán),一個一個數(shù)據(jù)的反演
問題解決!
學習鏈接:
到此這篇關(guān)于Pytorch運行過程中解決出現(xiàn)內(nèi)存不足的問題的文章就介紹到這了,更多相關(guān)Pytorch 內(nèi)存不足內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
各個系統(tǒng)下的Python解釋器相關(guān)安裝方法
這篇文章主要介紹了各個系統(tǒng)下的Python解釋器相關(guān)安裝方法,Python在很多Linux發(fā)行版中已經(jīng)被默認安裝,需要的朋友可以參考下2015-10-10純用NumPy實現(xiàn)神經(jīng)網(wǎng)絡(luò)的示例代碼
這篇文章主要介紹了純用NumPy實現(xiàn)神經(jīng)網(wǎng)絡(luò)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10Python第三方庫face_recognition在windows上的安裝過程
今天為大家介紹下face recognition在Windows系統(tǒng)上安裝與使用,但在Windows平臺上face recognition性能會有所下降2019-05-05Python基于matplotlib實現(xiàn)繪制三維圖形功能示例
這篇文章主要介紹了Python基于matplotlib實現(xiàn)繪制三維圖形功能,涉及Python使用matplotlib模塊進行三維圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-01-01