添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在利用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 GFLOPs
Transferred 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 multiarray
  File "D:\ProgramData\Anaconda3\envs\py38train\lib\site-packages\numpy\core\multiarray.py", line 10, in <module>
    from . import overrides
  File "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_main
    exitcode = _main(fd, parent_sentinel)
  File "D:\ProgramData\Anaconda3\envs\py38train\lib\multiprocessing\spawn.py", line 125, in _main
MemoryError
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掉,这样你在开始下一轮调试时以一个更好的电脑状态进行,操作效率、调试成功概率会有所提高。

其它环节与通过Anaconda环境配置方式一样; 就是在安装TensorFlow时不直接使用pip install --upgrade --ignore-installed tensorflow-gpu命令, 而是根据anaconda search -t conda tensorflow,会显示出目前可供选择的tensorflow版本,需求选择TensorFlow版本安装。———————————————— Tensorflow安装在windows 上面出现ImportError: DLL load fail
遇到的系统环境是 windows 10 最近在运行Cocos Studio上打开csd文件时候出现LoadLibrary failed with error 1114: 动态链接库(DLL)初始化例程失败 感觉最好网上搜索下了,原因就是我这款笔记本电脑的显卡是可以切换的,显卡和电源有联系。电源的设置导致显卡某些功能被 禁用了,具体还原步骤 1、打开控制面板 2、硬件和声音3、电源选项4、更...
ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败 Traceback (most recent call last): File "C:\Users\22681\A
今天在安装cpu版本的tensorflow时报了这个错,python版本为3.5.2。 原因:最新的tensorflow安装包对于比较老的处理器不支持。 解决方法:出现这种错误的原因是最近tensorflow安装包不支持较老的处理器,需要安装老版本的tensorflow,换成tensorflow的1.5版本的没有问题。 1.卸载目前安装的tensorflow 命令为:pip uninsta...
### 回答1: 这个错误是由于Windows操作系统中的“页面文件”(也称为虚拟内存)的大小不足而导致的。页面文件是一种在计算机内存不足时,将数据存储在硬盘上的技术。 如果您在加载某个程序或文件时遇到此错误,可能是因为系统无法为该程序或文件分配足够的内存。解决方法通常包括增加计算机内存或调整页面文件大小。您可以通过以下步骤更改页面文件大小: 1. 右键单击“计算机”图标,选择“属性”。 2. 点击“高级系统设置”。 3. 在“高级”选项卡下,单击“性能”区域中的“设置”。 4. 单击“高级”选项卡下的“更改”。 5. 取消选中“自动管理分页文件大小”,然后选择“自定义大小”。 6. 输入新的初始大小和最大大小(以MB为单位),然后单击“设置”。 7. 重新启动计算机。 如果您仍然遇到此错误,请考虑升级计算机的内存或咨询专业人员以获得更多帮助。 ### 回答2: oserror: [winerror 1455] 页面文件太小无法完成操作error loading。 这个错误提示意味着Windows操作系统的页面文件太小了,导致系统无法完成需要的操作页面文件Windows操作系统用于虚拟内存管理的一种重要文件,用于保存操作系统和正在运行的程序使用的内存数据。 当页面文件发生错误时,可能会导致系统出现一系列问题,从系统崩溃,重启,到程序崩溃和数据损坏等。所以,解决这个错误提示非常重要。 要解决这个错误,首先需要检查页面文件的大小,并将其调整到合适的大小。可以通过右键单击“我的电脑” -> “属性” -> “高级系统设置” -> “高级” -> “性能设置” -> “高级” -> “更改” -> “自定义大小”来设置页面文件的大小。建议设置为Windows推荐的值,通常为内存大小的1.5到2倍。 另外,也可以通过以下步骤解决这个错误: 1. 打开“控制面板”,选择“系统和安全”,然后选择“系统”。 2. 单击“高级系统设置”,然后单击“环境变量”。 3. 在“用户变量”下的“临时文件”中查找页面文件。 4. 删除页面文件。 5. 重新启动系统。 如果以上步骤不能解决问题,还可以尝试升级或更新操作系统。建议定期升级系统和软件程序,以解决可能出现的错误或安全问题。 总之,解决oserror: [winerror 1455] 页面文件太小无法完成操作error loading。这个错误提示需要对页面文件的大小进行检查和设置,以确保系统正常运行。此外,定期更新和升级操作系统和软件程序也是非常重要的。 ### 回答3: 这个错误提示说的是页面文件(也叫虚拟内存)太小了,无法完成操作。虚拟内存是操作系统用来管理内存的一种技术,它会将部分硬盘空间作为虚拟内存使用。当内存不足时,操作系统会将一部分内存转移到虚拟内存中。而当虚拟内存不足时,就会出现这个错误。 造成这个错误的原因可能有很多种。首先,可能是因为硬盘空间不足,导致操作系统无法正常使用虚拟内存。其次,可能是因为系统设置不合理,虚拟内存的大小设置得过小,导致无法满足操作系统的需求。如果虚拟内存的大小设置得过小,可能会影响系统的运行效率,导致打开程序、处理数据等操作变得缓慢。 解决这个问题的方法也有很多种。首先,需要保证硬盘空间充足,最好留出一定的空间给虚拟内存使用。其次,可以将虚拟内存的大小设置得更大一些,具体大小需要根据自己的系统配置、内存大小等因素来调整。在Windows系统下,可以通过以下步骤来设置虚拟内存的大小: 1. 右键点击“我的电脑”,选择“属性”。 2. 在左侧面板中选择“高级系统设置”。 3. 在弹出的窗口中选择“高级”选项卡,然后点击“设置”。 4. 在弹出的窗口中选择“高级”选项卡,然后点击“更改”。 5. 将“自动管理所有驱动器的分页文件大小”取消勾选,然后选择想要设置的分页文件大小,最后点击“设置”即可完成设置。 如果以上方法无法解决问题,还可以尝试将一些不必要的程序关闭,释放系统资源。同时,也可以通过更换更大的硬盘、增加内存等方式来优化系统性能,避免出现这种错误。
yoloV5训练出错:wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_ 15765 yoloV5训练出错:wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_ m0_54093149: 直接从报错点进对应文件就可以,我的init也是空的,是在wandb_init文件里 【Windows】怎么查看CUDA版本?Conda命令安装和NVIDIA官网安装包安装的CUDA有何区别?nvcc -V和nvidia-smi获得的CUDA版本有何区别?如何指定CUDA版本? 进击小兔: 进入环境 conda list查看可以么 也能看cuda版本啊(是否正确呢)