OSError: [WinError 1455] 页面文件太小,无法完成操作、error 1114:动态链接库(DLL)初始化例程失败

本文主要是介绍OSError: [WinError 1455] 页面文件太小,无法完成操作、error 1114:动态链接库(DLL)初始化例程失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 一、背景

 在利用yolo训练自制数据集的时候,出现了【OSError: [WinError 1455] 页面文件太小,无法完成操作】和【OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败】的错误。

D:\ProgramData\Anaconda3\envs\py38train\python.exe "D:/BaiduNetdiskDownload/pycv-learning/yolov5-spot detection/train.py"
wandb: Currently logged in as: genorgp (use `wandb login --relogin` to force relogin)
wandb: Appending key for api.wandb.ai to your netrc file: C:\Users\Administrator/.netrc
github: skipping check (not a git repository), for updates see https://github.com/ultralytics/yolov5
train: weights=pretrained\yolov5s.pt, cfg=models\yolov5s_spot.yaml, data=data\spot_data.yaml, hyp=data\hyps\hyp.scratch.yaml, epochs=300, batch_size=1, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, evolve=None, bucket=, cache=None, image_weights=False, device=0, multi_scale=True, single_cls=False, adam=False, sync_bn=False, workers=0, project=runs\train, name=exp, exist_ok=False, quad=False, linear_lr=False, label_smoothing=0.0, patience=100, freeze=0, save_period=-1, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest
YOLOv5  2022-1-26 torch 1.9.0+cu111 CUDA:0 (NVIDIA GeForce GTX 1650, 4096MiB)Model Summary: 270 layers, 7041205 parameters, 7041205 gradients, 15.9 GFLOPsTransferred 342/349 items from pretrained\yolov5s.pt
Scaled weight_decay = 0.0005
optimizer: SGD with parameter groups 57 weight, 60 weight (no decay), 60 bias
train: Scanning 'D:\BaiduNetdiskDownload\pycv-learning\data\spot_data\labels\train' images and labels...:   0%|          | 0/3308 [00:00<?, ?it/s]Traceback (most recent call last):ImportError: DLL load failed while importing groupby: 页面文件太小,无法完成操作。
Traceback (most recent call last):MemoryError
Traceback (most recent call last):File "D:\ProgramData\Anaconda3\envs\py38train\lib\site-packages\numpy\core\__init__.py", line 23, in <module>from . import multiarrayFile "D:\ProgramData\Anaconda3\envs\py38train\lib\site-packages\numpy\core\multiarray.py", line 10, in <module>from . import overridesFile "D:\ProgramData\Anaconda3\envs\py38train\lib\site-packages\numpy\core\overrides.py", line 6, in <module>from numpy.core._multiarray_umath import (
ImportError: DLL load failed while importing _multiarray_umath: 找不到指定的模块。During handling of the above exception, another exception occurred:Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\ProgramData\Anaconda3\envs\py38train\lib\multiprocessing\spawn.py", line 116, in spawn_mainexitcode = _main(fd, parent_sentinel)File "D:\ProgramData\Anaconda3\envs\py38train\lib\multiprocessing\spawn.py", line 125, in _mainMemoryError
wandb: Currently logged in as: genorgp (use `wandb login --relogin` to force relogin)
wandb: Appending key for api.wandb.ai to your netrc file: C:\Users\Administrator/.netrc
train: Scanning 'D:\BaiduNetdiskDownload\pycv-learning\data\spot_data\labels\train' images and labels...3308 found, 0 missing, 0 empty, 0 corrupted: 100%|██████████| 3308/3308 [00:15<00:00, 209.51it/s]
Traceback (most recent call last):OSError: [WinError 1114] 动态链接库(DLL)初始化例程失败。 Error loading "D:\ProgramData\Anaconda3\envs\py38train\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.

二、解决过程

网上大概有以下几种解决方案,我已全部总结于此:

2.1 调小batch size

2.2 调小num_worker 

2.3 自定义虚拟内存

因为我的python环境安装在D盘,项目地址也在D盘 ,所以直接扩展D盘的虚拟内存。

2.4 配置环境变量

因为上面3种方法都试遍了,还是没办法解决问题,所以我就找到下面这篇付费专栏文章,花了19.9元看了全文。

说到底,它里面的说法就是给pycharm配置了一个环境变量,具体内容见下图吧!

我配置完成后,再次跑程序,又出错了!20元打水漂了,因此我强烈怀疑这个作者就是在割韭菜,搞一个常见错误解决方法的付费专栏,专门坑那些因为异常/bug急得焦头焦脑的韭菜。

2.5 显卡性能最大化

在高级电源选项中进行该项设置;界面和选项名称可能不一样,但是实际效果一样。

2.6 重启pycharm或重启电脑

上面这些方法都试了没用,就试试这个玄学的方法吧!不过我感觉这个方法和重置内存、清理内存再启动的效果一样,所以还不如去任务管理器清一下残余进程。 

三、回顾和小结

上文没提到的几点。

我在出现这种错误的时候,其实还有其他不良反应:pycharm可能会秒退,电脑变卡、很多操作未响应,并且QQ也不明不白地报错、chrome浏览器的网页出现out of memory的错误。

之后我打开任务管理器,发现有好几个python.exe的进程在后台占了我大量的RAM,于是在我关闭它们之后,网页就显示正常了,电脑也流畅许多。

这个错误是在上午发生的,然后我中午跑程序的时候发生这个错误,竟然还可以继续训练,只不过obj、box、cls的取值都是nan。

下午再次训练的时候,发现竟然没有发生错误了;虽然那几个参数的值还是nan。

 并且我把batch size的值从1调到4,也没有出现该错误,只是gpu_mem提高了(而我的显卡是GTX 1650 4GB,完全能承载2.42G的内存需求,所以理论上也是不应该出错的)。

小结里我想说什么呢?如果按照上面6种方法调试的过程中,出现电脑卡顿、其他程序崩溃、out of memory的错误时,一定要记得去任务管理器把那些因为程序崩溃没有自动清掉的进程人工kill掉,这样你在开始下一轮调试时以一个更好的电脑状态进行,操作效率、调试成功概率会有所提高。

这篇关于OSError: [WinError 1455] 页面文件太小,无法完成操作、error 1114:动态链接库(DLL)初始化例程失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/380017

相关文章

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python使用asyncio实现异步操作的示例

《Python使用asyncio实现异步操作的示例》本文主要介绍了Python使用asyncio实现异步操作的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录1. 基础概念2. 实现异步 I/O 的步骤2.1 定义异步函数2.2 使用 await 等待异

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与