pytorch使用過程問題彙總

2022-07-07 05:51:10 字數 2120 閱讀 9082

1.decompressionbombwarning: image size (92680344 pixels) exceeds limit of 89478485 pixels, could be decompression bomb dos attack.decompressionbombwarning,

日期 : 2021-01-27

原因是影象尺寸超過pli 預設讀取影象尺寸。

一種方法是更改閾值上限 參考

from

pil import image

image.max_image_pixels = 2300000000 # 更改閾值畫素上限

第二種方法,使用其它的庫,讀入之後,縮放再給pil使用。

2.列表儲存生成的特徵資料時,視訊記憶體溢位

問題**

for data in

enumerate(testloader): # 這邊返回的是(執行次數,__getitem__返回資料) 。 loader的batch_size= 1

print(data[0])

classno = data[1][1

] testimage= data[1][0

] filepath =data[1][2

] testencode =model.encode(testimage.cuda())

大概執行25次,視訊記憶體溢位。 用的是resnet152做遷移學習。視訊記憶體是8g ,之前訓練網路的時候,批次=25,視訊記憶體就會溢位。對照,顯然每次載入一幅影象生成特徵值後,該次的網路占用沒有釋放。猜測雖然是eval ,但是每次執行後將testencode 儲存。系統檢測到資料沒釋放,對應生成特徵的網路過程也沒釋放。

解決辦法如下

testencode = model.encode(testimage.cuda()).detach().cpu()   # 呼叫detach之後,儲存新建副本,與網路無關。

3. 載入預訓練模型並刪除指定資料

載入預訓練模型的時候,會碰到預訓練模型類別數目和實際類別不一致。 網上搜尋,有如下方法

1)建立模型時,設定類別數目和預訓練模型一致,賦值完畢後,再更改輸出頭

checkpoint = torch.load(config.premodelpath, map_location='

cpu'

) #輸出的層名稱

classifiers = "

head

"msg = model.load_state_dict(checkpoint['

model

'], strict=false)

model.head = 新建輸出頭

此處,給出參考「timm」的**。先刪除預訓練模型的頭,然後直接賦值。

checkpoint = torch.load(config.premodelpath, map_location='

cpu'

) #輸出的層名稱

classifiers = "

head

"if classifiers is

not none:

ifisinstance(classifiers, str):

classifiers =(classifiers,)

#類數目不一致,則刪除輸出層

if config.model.num_classes != 1000

:

for classifier_name in

classifiers:

# completely discard fully connected

if model num_classes doesn'

t match pretrained weights

del checkpoint["

model

"][classifier_name + '

.weight']

del checkpoint[

"model

"][classifier_name + '

.bias

']

原來預訓

Pytorch使用過程總結

類似numpy的廣播 使用pytorch廣播語義實現不同形狀陣列的運算 如果以下規則成立,則兩個張量是 可廣播的 每個張量具有至少乙個維度。當從尺寸尺寸開始迭代時,從尾部維度開始,尺寸大小必須相等,其中乙個為1,或其中乙個不存在。舉例說明 在v0.2之前,如下2個張量是無法執行的,因為屬於不同型別 ...

python 使用過程問題總結

可能是安裝的時候沒有勾選pip,導致pip無法使用。pip traceback most recent call last file stdin line 1,in nameerror name pip is not defined 在cmd命令符下輸入pip,而不是在python直譯器中輸入pip...

git windows使用過程問題積累

課程老師指定使用git進行 作業 整理了自己在使用git過程 現的問題,希望能幫到大家 注 本人使用git for windows win 10 複製貼上仍然能使用,只是快捷鍵修改了,可通過滑鼠右鍵使用 廖雪峰git教程 可能會出現 authentication failed for這樣的報錯 原因...