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.mzph.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显示的界面是这样的&…