RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc

RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed finding central directory

原因分析

這個報錯是出現在PyTorch在讀入模型參數時:

checkpoint = torch.load(epoch_15.pth, map_location='cpu')

筆者之前在訓練模型,突然服務器整個停掉,發現竟然是系統固態硬盤沒有空間了,無法繼續操作,故刪了一些不用的文件,繼續開始訓練,然后重新載入之前存在保存的模型就會報錯如上。

既然是在訓練過程中用盡了硬盤空間,那就應該是停在某個大規模讀寫硬盤的過程中,那就肯定是在保存模型的過程中了。即在某一輪訓練完成后,保存模型參數時,占盡了硬盤空間,導致程序停掉。即有可能某一輪在保存模型參數時沒有保存完就停止了,而在重新讀取模型參數時讀到的也是沒有保存完整的模型參數,因此報錯,想了一下只能是這個問題了。

這也與筆者在網上查到的一些資料吻合。

當然,程序突然停止的原因不止磁盤空間不足這一個,也可能是停電、世界末日之類的奇怪原因,但是這些原因很小概率發生在模型保存的過程中,而針對本問題,磁盤空間不足是最有可能、最合理的。比如你的一個模型1GB,磁盤上只有3.5GB了,那么最多在保存第四個模型時,就會發生這里的磁盤空間不足的慘案,導致上述報錯。

對策

如果確定是模型文件不完整的話,那就只好丟棄此文件了,所幸也只是一個文件而已。比如我們在訓練時每5輪保存一次模型,即有epoch_0.pth,epoch_5.pth,… 然后我們發現在加載 epoch_15.pth 時報了這個錯,說明我們在保存 epoch_15.pth 時由于空間不足、停電或者什么亂七八糟的原因程序停止了,沒有完整地保存下 epoch_15.pth。這種情況當前文件應該是救不回來了,因為這相當于我們在把內存中的模型參數數據保存到磁盤上時程序停止了,這時內存中的數據已經丟失了,磁盤上的數據又沒有保存完。所以我們就只好丟棄這個 epoch_15.pth 了,然后從上一次最近的完整保存的模型文件恢復訓練,在本例中就是重新加載 epoch_10.pth 繼續訓練。沒什么大不了的,重新花點時間再訓練就好了。如果你的保存步長更小,比如一輪一保存的話,那影響就更小了。可以直接從 epoch_14.pth 繼續訓練。
Ref:

https://blog.csdn.net/weixin_44831720/article/details/113853623

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532833.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532833.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

xp搭建 php環境,windows xp 下 LAMP環境搭建

1. apache安裝步驟如下圖在瀏覽器中輸入:localhost,出現下面頁面說明已成功安裝apache。2. mysql安裝如下圖顯示在運行里面輸入cmd ,然后連接測試mysql ,如圖所示:3. php安裝(1)將php壓縮包解壓到安裝路徑中的php目錄…

C++中的虛函數(表)實現機制以及用C語言對其進行的模擬實現

C中的虛函數(表)實現機制以及用C語言對其進行的模擬實現 聲明:本文非博主原創,轉自https://blog.twofei.com/496/,博主讀后受益良多,特地轉載,一是希望好文能有更多人看到,二是為了日后自己查閱。 前言 …

php 前端模板 yii,php – Yii2高級模板:添加獨立網頁

我在backend / views / site下添加了help.php,并在SiteController.php下聲明了一個能夠識別鏈接的函數public function behaviors(){return [access > [class > AccessControl::className(),rules > [[actions > [login, error],allow > true,],[actions > […

C++中數組和指針的關系(區別)詳解

C中數組和指針的關系(區別)詳解 本文轉自:http://c.biancheng.net/view/1472.html 博主在閱讀后將文中幾個知識點提出來放在前面: 沒有方括號和下標的數組名稱實際上代表數組的起始地址,這意味著數組名稱實際上就是…

安裝php獨立環境,0507-php獨立環境的安裝與配置 Web程序 - 貪吃蛇學院-專業IT技術平臺...

1.在一個純英文目錄下新建三個文件夾2.安裝apache(選擇好版本)過程中該填的按格式填好,其余的只更改安裝目錄即可如果報錯1901是安裝版本的問題。檢查:安裝完成后localhost打開為It works!添加到電腦屬性環境變量:3.將php文件解壓文檔放到AMP…

linux中PATH變量-詳細介紹

轉自:https://blog.csdn.net/haozhepeng/article/details/100584451 轉載者勘誤 原文最后提到的 echo 命令對于環境變量的修改無影響。這是肯定的,echo 命令相當于只是一個打印的函數(比如 Python 中的 print)。這里要修改環境變…

php assert eval,代碼執行函數之一句話木馬

前言大家好,我是阿里斯,一名IT行業小白。非常抱歉,昨天的內容出現瑕疵比較多,今天重新整理后再次發出,修改并添加了細節,另增加了常見的命令執行函數如果哪里不足,還請各位表哥指出。eval和asse…

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理

顯卡、顯卡驅動、CUDA、CUDA Toolkit、cuDNN 梳理 轉自:https://www.cnblogs.com/marsggbo/p/11838823.html#nvccnvidia-smi GPU型號含義 顯卡: 簡單理解這個就是我們前面說的GPU,尤其指NVIDIA公司生產的GPU系列,因為后面介紹的…

php中msubstr,PHP學習:thinkphp中字符截取函數msubstr()用法分析

《PHP學習:thinkphp中字符截取函數msubstr()用法分析》要點:本文介紹了PHP學習:thinkphp中字符截取函數msubstr()用法分析,希望對您有用。如果有疑問,可以聯系我們。本文實例講述了thinkphp中字符截取函數msubstr()用法…

VS Code的Error: Running the contributed command: ‘_workbench.downloadResource‘ failed解決

VS Code的Error: Running the contributed command: _workbench.downloadResource failed解決 轉自:https://blog.csdn.net/ibless/article/details/118610776 1 問題描述 此前,本人參考網上教程在VS Code中配置了“Remote SSH”插件(比如這…

Oracle閃回報錯,oracle 閃回區滿了,ORA-19815

oracle 閃回區滿了,查看日志報錯:ORA-19815,命令行輸入:sqlplus / as sysdbastartup mount //如果你的數據庫出現了無法連接的情況時,可以加上這句select file_type, percent_space_used as used,percent_space_rec…

[2021-ICCV] MUSIQ Multi-scale Image Quality Transformer 論文簡析

[2021-ICCV] MUSIQ: Multi-scale Image Quality Transformer 論文簡析 論文:https://arxiv.org/abs/2108.05997 代碼:https://github.com/google-research/google-research/tree/master/musiq 概述 當前SOTA的IQA(圖像質量評估&#xff0…

安裝oracle不動了,windows2008安裝ORACLE到2%不動的問題 | 信春哥,系統穩,閉眼上線不回滾!...

最近又有網友遇到在windows2008服務器上安裝ORACLE軟件時到2%就卡住不動的問題,下面是該網友的描述:oralce 11g r2 windows server 2008 R2安裝到最后一步復制數據文件時卡到2% 不走了內存一直飆升求解決這個問題前段時間也有人遇到過,但是他…

手把手教你入門Git --- Git使用指南(Linux)

手把手教你入門Git — Git使用指南(Linux) 系統:ubuntu 18.04 LTS 本文所有git命令操作實驗具有連續性,git小白完全可以從頭到尾跟著本文所有給出的命令走一遍,就會對git有一個初步的了解,應當能做到會用并…

linux修改主機名后oracle em控制臺起不來,更改計算機名后導致Oracle dbconsole無法啟動問題解決方法...

今天不知道哪根筋搭歪了,看著Oracle EM控制臺的主機名WIN-LOSGI0TCOG0亂七八糟的很不爽,就把它給改了。然后Oracle EM就上不去了,Oracledbconsole服務起不來,我嘗試把所有“WIN-LOSGI0TCOG0”替換成“ggsjy”,找了好多…

Shell腳本多行換行報錯:- unrecognized arguments- \

shell error: unrecognized arguments: \ 在使用linux長命令時,我們通常會用一個shell腳本加\分行的形式來更清晰展示參數。 這時有一個注意事項:在\后必須緊跟回車, 否則會導致后面的參數無法傳入。因為這時程序會將后面的參數算作一條新命…

shell腳本長命令帶換行 注釋方法

shell腳本長命令帶換行 注釋方法 命令行傳參 在訓練深度學習網絡時,我們每次實驗通常會有許多超參數需要設置,如batch size, epoch, gpu id, arch甚至還有一些具體的模型結構等。這事我們通常使用python模塊argparse,在命令行進行傳參。 比…

php對中英文字符串進行截取,利用php怎么對中英文混合的字符串進行截取

利用php怎么對中英文混合的字符串進行截取發布時間:2021-01-04 15:31:24來源:億速云閱讀:103作者:Leah利用php怎么對中英文混合的字符串進行截取?很多新手對此不是很清楚,為了幫助大家解決這個難題&#xf…

Linux查找命令find、loacte、whereis、which、type梳理

Linux查找命令find、loacte、whereis、which、type梳理 Linux操作系統中有5種常用的查找命令:find,locate,whereis,which,type,他們分別用于查找不同的東西,本文將就他們各自的功能進行一下梳理…

php數據關系圖,如何利用navicat查看數據表的ER關系圖

文章背景:(相關推薦:navicat)由于工作需要,現在要分析一個數據庫,然后查看各個表之間的關系,所以需要查看表與表之間的關系圖,專業術語叫做ER關系圖。默認情況下,Navicat顯示的界面是這樣的&…