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

相关文章

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较